Skip to content
文档
使用
@swc/cli

@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。