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。

--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 mjs

Please 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"
  }
}