Skip to content

Commit dbf1a3d

Browse files
Merge pull request #662 from PeterYurkovich/add-swc-for-local-running
NO-JIRA: use swc when running in development
2 parents b2d7d34 + dd945f0 commit dbf1a3d

File tree

4 files changed

+296
-12
lines changed

4 files changed

+296
-12
lines changed

web/.swcrc

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"$schema": "https://swc.rs/schema.json",
3+
"jsc": {
4+
"parser": {
5+
"syntax": "typescript",
6+
"jsx": true,
7+
"dynamicImport": true,
8+
"decorators": true
9+
},
10+
"transform": {
11+
"react": {
12+
"runtime": "automatic"
13+
}
14+
},
15+
"target": "es2021",
16+
"loose": false,
17+
"externalHelpers": false,
18+
"keepClassNames": true,
19+
"preserveAllComments": true
20+
},
21+
"module": {
22+
"type": "es6",
23+
"strict": false,
24+
"noInterop": false
25+
},
26+
"minify": false,
27+
"sourceMaps": true
28+
}

web/package-lock.json

Lines changed: 243 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@
123123
"@cypress/grep": "^4.1.0",
124124
"@cypress/webpack-preprocessor": "^6.0.2",
125125
"@date-fns/tz": "^1.4.1",
126+
"@swc/core": "^1.15.3",
127+
"@swc/helpers": "^0.5.17",
126128
"@types/classnames": "^2.2.7",
127129
"@types/jest": "^30.0.0",
128130
"@types/lodash-es": "^4.17.12",
@@ -158,6 +160,7 @@
158160
"sass": "^1.42.1",
159161
"sass-loader": "^10.1.1",
160162
"style-loader": "^3.3.1",
163+
"swc-loader": "^0.2.6",
161164
"ts-jest": "^29.4.4",
162165
"ts-loader": "^9.2.8",
163166
"ts-node": "^10.7.0",

web/webpack.config.ts

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,6 @@ const config: Configuration = {
2525
},
2626
module: {
2727
rules: [
28-
{
29-
test: /\.(jsx?|tsx?)$/,
30-
exclude: /node_modules/,
31-
use: [
32-
{
33-
loader: 'ts-loader',
34-
options: {
35-
configFile: path.resolve(__dirname, 'tsconfig.json'),
36-
},
37-
},
38-
],
39-
},
4028
{
4129
test: /\.scss$/,
4230
exclude: /node_modules\/(?!(@patternfly|@openshift-console\/plugin-shared)\/).*/,
@@ -119,6 +107,28 @@ if (process.env.NODE_ENV === 'production') {
119107
config.optimization.chunkIds = 'deterministic';
120108
config.optimization.minimize = true;
121109
config.devtool = false;
110+
111+
// Use default ts-loader for prod
112+
config.module.rules?.unshift({
113+
test: /\.(jsx?|tsx?)$/,
114+
exclude: /node_modules/,
115+
use: [
116+
{
117+
loader: 'ts-loader',
118+
options: {
119+
configFile: path.resolve(__dirname, 'tsconfig.json'),
120+
},
121+
},
122+
],
123+
});
124+
} else {
125+
config.module.rules?.unshift({
126+
test: /\.(jsx?|tsx?)$/,
127+
exclude: /node_modules/,
128+
use: {
129+
loader: 'swc-loader',
130+
},
131+
});
122132
}
123133

124134
export default config;

0 commit comments

Comments
 (0)