webpackでswcを使う
webpack
でTypeScriptをトランスパイルする際に、ts-loader
の代わりにesbuild
(esbuild-loader
)を使うこともできるが、swc
(swc-loader
)を使うこともできる。
依存関係には、@swc/core
とswc-loader
を追加する。
# npm
npm install -D @swc/core swc-loader
# yarn
yarn add -D @swc/core swc-loader
# pnpm
pnpm add -D @swc/core swc-loader
あとは、ts-loader
の代わりにswc-loader
を使うように設定する。
webpack.config.js
:
module.exports = {
module: {
rules: [
{
test: /\.([jt]sx?)?$/,
exclude: /node_modules/,
use: {
loader: "swc-loader",
// https://swc.rs/docs/configuration/compilation
options: {
jsc: {
parser: {
syntax: "typescript",
tsx: true,
},
},
},
},
},
],
},
};
設定にはoptions
を使ってもいいが、.swcrc
を使っても良い。
webpack.config.js
:
module.exports = {
module: {
rules: [
{
test: /\.([jt]sx?)?$/,
exclude: /node_modules/,
use: "swc-loader",
},
],
},
};
.swcrc
:
{
"jsc": {
"parser": {
"syntax": "typescript",
"tsx": true
}
}
}