npm install --save-dev @swc/plugin-relay @swc/coreThe below shows how to configure @swc/plugin-relay and pass the options to Webpack:
Create an .swcrc.js file like the below:
// .swcrc.js
module.exports = {
jsc: {
experimental: {
plugins: [
[
"@swc/plugin-relay",
{
rootDir: __dirname,
artifactDirectory: "src/__generated__",
language: "typescript",
eagerEsModules: true,
},
],
// Or if you want to use multiple projects
[
"@swc/plugin-relay",
{
projects: [
{
rootDir: path.resolve(__dirname, '../project1'),
},
{
rootDir: path.resolve(__dirname, '../project2'),
}
],
language: "typescript",
eagerEsModules: true,
},
],
],
},
parser: {
syntax: "typescript",
tsx: true,
},
transform: {
react: {
runtime: "automatic",
},
},
},
};And then update your swc-loader Webpack config:
const swcConfig = require("./.swcrc.js")
// ...
{
include: path.resolve("./src"),
test: /\.ts$/,
use: [
{
loader: "swc-loader",
options: swcConfig,
},
],
}Note: We're using a
.swcrc.jsfile extension up above and importing the config directly because Relay needs access to__dirname, which can't be derived from the default JSON parsed from.swcrc.
By default, @swc/plugin-relay will transpile import paths based on the language option.
You can use outputFileExtension to change the file extension of the generated import paths.
plugins: [
[
"@swc/plugin-relay",
{
rootDir: __dirname,
artifactDirectory: "src/__generated__",
language: "typescript",
eagerEsModules: true,
outputFileExtension: "js",
},
],
],In this example typescript graphql files will output transpiled import path of javascript ending with .js.
- 1cbeb5a: build: Update swc_core to v58.0.1
- 2113ddb: build: Update swc_core to v57
- 870774a: build: Update swc_core to v56
- 66f5258: build: Update swc_core to v55.x.x
- 9c163ec: Update swc_core to v53, really
- 3799fa4: Update swc_core to v53.0.0
- 0a1d66f: Update swc_core to v52.0.0
- a73246f: build: Update swc_core to v49.0.0
- 6c46f86: feat: Enable backward-compatibility feature
- 255528d: Fix typo in config types
- ad79e09: Update swc_core to v48.0.4
- 7a0fbdb: Update swc_core to v48
- 593f438: Update swc_core to v47
- 25e0c2c: Update swc_core to v46.0.0
- c324a59: Update swc_core to v45
- 8bad98d: Update swc_core to v44
- 47be132: Update swc_core to v42
- 0c9d7a1: build: Update swc_core to v39.0.0
- a872100: build: Update swc_core to v38
- 9cdcdc5: Update swc_core to v36
- 9b08ff7: Update swc_core to v35
- df280ad: Update swc_core to v34.0.0
- 562e755: Update swc_core to v33
- 85719ca: Update swc_core to v32
- 45d1ac7: Update swc_core to v31
- 54febbc: Update swc_core to v29
- 8d5ce5c: Update swc_core to v28.0.0
- cf2636b: Update swc_core to v27
- e3e743d: Update swc_core to v27
- 5ddbaeb: Update swc_core to v23
- d51d525: Update swc_core to v22.0.0
- cb94b92: Update swc_core to v21.0.1
- 31e3254: build: Update
swc_coretov19.0.0
- f0fee1d: Update swc_core to v15.0.1
- 04465bc: Update swc_core to v14.0.0, really
- ce8d317: Update swc_core to v14.0.0
- bfa0a51: Update swc_core to v13
- b8c4e6c: Update swc_core to v12
- 4c8b0e2: Update swc_core
- e8973e8: Update swc_core to v10.2.3
- f436a09: Update swc_core to v10.
- f155bce: Update swc_core to v9
- c9e75ce: Bump crate versions
- 4574a70: Update swc_core to v8.0.1
- f3cea5f: Bump versions
- a73664c: Update swc_core to v6.0.2
- 4ff3b22: Move formatjs plugin to official plugin repository
- 4ad7f56: Update swc_core to v5
- ba13397: Update swc_core to v4
- 0508b6d: Update swc_core to v3
- cd5ad2a: Update swc_core to 1.0
- 20162c8: Update swc_core to v0.106.0
- 04548e2: Update swc_core to 0.103.x
- f8e5fd0: Update swc_core to 0.102.x
- 7d17e25: Update swc_core to v0.101.x
- 7391419: Update swc_core to v0.100.0
- 9c28afb: Update swc_core to 0.99.x (@swc/core 1.7.0)
- 06e1e66: Fix operation name detection
- 7984823: Use Arc instead of Config
- af25741: Update swc_core to 0.96.0
- be5f997: Support multi-project mode
- 41a8f56: Update swc_core to v0.95.x
- fc30490: Update swc_core to v0.93.0
- 67f7bc2: Publish packages
- 0f38844: Publish all chanages
- 1379d24: Make config parsing typed.
- 1cc9eda: Update dependencies
- 247cca6: Update rustc to 'nightly-2024-04-16'
- 876bbce: Update swc_core to 0.92.x
- 8e91d39: Update swc_core to 0.91.x
- 8c6f890: Always add current directory to relative output paths
- f4df366: Update swc_core
- c88b22b: Align package metadata
- a3cc4fb: Organize pacakge metadata
- e9e78ef: Update swc crates
- 6096d6d: Fix plugin version schema issue
- 37d3aaf: Depend on the swc download counter package
- dc0dc6b: Use correct identifier for imports
- 8bd92c7: swc_core 0.90.x
- 4ef0b7f: Add changelog to the readme
- 4e72680: swc_core@0.88.0
- 16bb4d8: swc_core@0.82.x