forked from Abdulbari/sgeUpdated
git-subtree-dir: sge-frontend git-subtree-mainline:876c278ac4git-subtree-split:5fa787e054
61 lines
1.8 KiB
JavaScript
61 lines
1.8 KiB
JavaScript
const path = require("path")
|
|
|
|
module.exports = {
|
|
webpack: function (config) {
|
|
// 1. Find and replace babel-loader with swc-loader
|
|
const jsRule = config.module.rules.find(
|
|
(rule) =>
|
|
rule.oneOf &&
|
|
rule.oneOf.some((r) => r.loader && r.loader.includes("babel-loader"))
|
|
)
|
|
|
|
if (jsRule) {
|
|
const babelLoaderIndex = jsRule.oneOf.findIndex(
|
|
(r) => r.loader && r.loader.includes("babel-loader")
|
|
)
|
|
|
|
jsRule.oneOf[babelLoaderIndex] = {
|
|
test: /\.(js|jsx|ts|tsx)$/,
|
|
exclude: /node_modules/,
|
|
use: {
|
|
loader: "swc-loader",
|
|
options: {
|
|
jsc: {
|
|
parser: {
|
|
syntax: "ecmascript",
|
|
jsx: true,
|
|
tsx: true, // Add support for TypeScript JSX
|
|
decorators: false,
|
|
dynamicImport: true
|
|
},
|
|
transform: {
|
|
react: {
|
|
runtime: "automatic",
|
|
refresh: process.env.NODE_ENV === 'development',
|
|
},
|
|
},
|
|
target: "es2015",
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
// 2. Add path aliases
|
|
config.resolve.alias = {
|
|
...config.resolve.alias,
|
|
"@src": path.resolve(__dirname, "src"),
|
|
"@assets": path.resolve(__dirname, "src/assets"),
|
|
"@components": path.resolve(__dirname, "src/components"),
|
|
"@layouts": path.resolve(__dirname, "src/layouts"),
|
|
"@store": path.resolve(__dirname, "src/redux"),
|
|
"@styles": path.resolve(__dirname, "src/styles"),
|
|
"@configs": path.resolve(__dirname, "src/configs"),
|
|
"@hooks": path.resolve(__dirname, "src/hooks"),
|
|
}
|
|
|
|
// Important: Return the modified config
|
|
return config
|
|
},
|
|
}
|