-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathswcPlugin.js
More file actions
37 lines (35 loc) · 841 Bytes
/
swcPlugin.js
File metadata and controls
37 lines (35 loc) · 841 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
const { addAfterLoader, loaderByName, removeLoaders } = require('@craco/craco');
module.exports = {
plugin: {
overrideWebpackConfig: ({
webpackConfig,
pluginOptions,
context: { paths },
}) => {
addAfterLoader(webpackConfig, loaderByName('babel-loader'), {
test: /\.(js|mjs|jsx|ts|tsx)$/,
include: paths.appSrc,
loader: require.resolve('swc-loader'),
options: pluginOptions,
});
removeLoaders(webpackConfig, loaderByName('babel-loader'));
return webpackConfig;
},
},
options: {
jsc: {
target: 'es2015',
externalHelpers: true,
transform: {
react: {
runtime: 'automatic',
},
},
parser: {
syntax: 'typescript',
tsx: true,
dynamicImport: true,
},
},
},
};