@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。
--out-file-extension
Use a specific extension for the output files.
As an example, if you want to render your es6 output to .mjs file extensions, you could call:
npx swc input.js --out-file-extension mjsPlease note that if you are compiling multiple files, you will also need to make sure that your imports are resolved with the appropriate
extension. You can do so by making use of the resolveFully and outFileExtension module options:
{
"module": {
"resolveFully": true,
"outFileExtension": "mjs"
}
}