@swc/cli
用法
运行以下命令下载预构建的二进制文件:
pnpm i -D @swc/cli @swc/core
然后,你可以转译你的文件:
# 转译一个文件并输出到 stdout
npx swc ./file.js
# 转译一个文件并输出到 `output.js`
npx swc ./file.js -o output.js
# 转译并写入 /output 目录
npx swc ./my-dir -d output
选项
--filename (-f)
从 stdin 读取时使用的文件名。这将在源映射和错误中使用。
npx swc -f input.js
--config-file
要使用的 .swcrc
文件的路径。
npx swc input.js --config-file .swcrc
--env-name
要使用的 'env' 的名称。默认值为 SWC_ENV
,或 NODE_ENV
,或 development
。
npx swc input.js --env-name='test'
--no-swcrc
是否查找 .swcrc
文件。
npx swc input.js --no-swcrc
--ignore
要跳过的 glob 路径列表。
npx swc src --ignore **/*.test.js
--only
要编译的 glob 路径列表。
npx swc src --only **/*.js
--watch (-w)
要自动重新编译文件,请安装 chokidar
:
npm i -D chokidar
然后,添加 -w
标志:
npx swc input.js -w
--quiet (-q)
抑制编译输出。
npx swc input.js -q
--source-maps (-s)
值:true|false|inline|both
npx swc input.js -s
--source-map-target
定义源映射的 file
。
npx swc input.js -s --source-map-target input.map.js
--source-file-name
设置返回的源映射的 sources[0]
。
--source-root
所有源的相对根。
--out-file (-o)
将所有输入文件编译为一个文件。
npx swc input.js -o output.js
--out-dir (-d)
将输入目录中的模块编译到输出目录。
npx swc src -d dist
--copy-files (-D)
在编译目录时,复制不可编译的文件。
npx swc src --copy-files
--include-dotfiles
在编译和复制不可编译的文件时包含 dotfiles。
npx swc src --include-dotfiles
--config (-C)
从 .swcrc
文件覆盖配置。
npx swc src -C module.type=amd -C module.moduleId=hello
--sync
同步调用 swc。用于调试。
npx swc src --sync
--log-watch-compilation
当成功编译一个监视文件时,记录一条消息。
npx swc input.js --log-watch-compilation
--extensions
使用特定的扩展名。
--strip-leading-paths
在构建最终输出路径时,删除前导目录(包括所有父相对路径)。例如,它将编译 src
文件夹中的所有模块到 dist
文件夹,而不创建 dist
文件夹中的 src
文件夹。
npx swc src -d dist --strip-leading-paths
在 nodejs 脚本中使用
const { swcDir } = require('@swc/cli');
const swcOptions = {
jsc: {
target: 'esnext',
externalHelpers: true,
},
module: {
type: 'commonjs',
},
sourceMaps: true,
};
swcDir({
cliOptions: {
outDir: './dist',
watch: true,
filenames: ['./src'],
extensions: ['.ts'],
stripLeadingPaths: true,
},
swcOptions,
callbacks: {
onSuccess: e => {
console.log(e);
},
onFail: e => {
console.log(e);
},
onWatchReady: () => {},
},
});
请注意,当使用 callbacks
时,--quiet (-q)
将始终为 true。