# @babel/cli
Babel 自带了一个内置的 CLI 命令行工具,可通过命令行编译文件。
此外,各种可直接调用脚本都存放在 @babel/cli/bin
中。一个可通过 shell 执行的实用脚本 - babel-external-helpers.js
,以及 Babel cli 主脚本 babel.js
。
# 安装 (opens new window)
虽然你 可以在你的计算机上将 Babel CLI 安装到全局环境中,但是更好的方式是 将 Babel CLI 安装到每个项目的 本地目录下。
这主要有两个原因:
- 同一台计算机上的不同项目可能依赖不同版本的 Babel,并且你可以针对项目单独升级 Babel 的版本。
- 对你所用的环境没有隐性依赖, 这能让你的项目更易于迁移和设置。
我们可以通过运行以下命令在本地安装 Babel CLI :
- npm
npm install --save-dev @babel/core @babel/cli
- yarn
yarn add --dev @babel/core @babel/cli
**注意:**如果不存在
package.json
文件,请在安装之前创建一个。这将确保能够使用npx
命令。
安装完成后,你的 package.json
文件应当包括如下内容:
{
"devDependencies": {
+ "@babel/cli": "^7.0.0",
+ "@babel/core": "^7.0.0"
}
}
# 用法 (opens new window)
**注意:**请在执行
npx babel
之前首先要安装@babel/cli
和@babel/core
,否则npx
将安装老旧的babel
6.x 版本。除了npx
之外,你还可以将命令写入npm 运行脚本
中,否则你就只能使用相对路径(./node_modules/.bin/babel
)来使用 Babel 了。
注意:安装前请先
@babel/cli
安装,否则会安装过时的6.x。除了npx之外,您还可以将它放在 (opens new window)npm run 脚本
中,或者您可以改为使用相对路径执行。@babel/core``npx babel``npx``babel``./node_modules/.bin/babel
npx babel script.js
# 编译文件 (opens new window)
编译 script.js
文件并 输出到标准输出设备(stdout)。
npx babel script.js
# output...
如果你希望 输出到文件,可以使用 --out-file
或 -o
参数。
npx babel script.js --out-file script-compiled.js
要在 每次文件修改后编译该文件,请使用 --watch
或 -w
参数:
npx babel script.js --watch --out-file script-compiled.js
# 编译并输出源码映射表(Source Maps) (opens new window)
注意:从v7.19.3开始,如果不指定该参数,
@babel/cli
将遵循配置文件 (opens new window) 。
如果你希望输出 源码映射表文件(source map file),你可以使用 --source-maps
或 -s
参数。
npx babel script.js --out-file script-compiled.js --source-maps
或者,如果你希望使用 内联源码映射表(inline source maps),请使用 --source-maps inline
参数。
npx babel script.js --out-file script-compiled.js --source-maps inline
# 编译整个目录 (opens new window)
编译整个 src
目录下的文件并输出到 lib
目录,输出目录可以通过 --out-dir
或 -d
指定。这不会覆盖 lib
目录下的任何其他文件或目录。
npx babel src --out-dir lib
编译整个 src
目录下的文件并将输出合并为一个文件。
npx babel src --out-file script-compiled.js
# 忽略某些文件 (opens new window)
忽略规范和测试文件
npx babel src --out-dir lib --ignore "src/**/*.spec.js","src/**/*.test.js"
# 复制文件 (opens new window)
复制不需要编译的文件
npx babel src --out-dir lib --copy-files
如果你不想复制被忽略的 JavaScript 文件,请执行以下操作:
历史| | |
| :--- | :--- |
| | | | | Change
option default to , it can be disabled by
|
npx babel src --out-dir lib --copy-files --no-copy-ignored
# 通过管道输入文件 (opens new window)
通过 stdin 和管道(pipe)将文件内容传递给 babel 命令,并将编译结果输出到 script-compiled.js
文件
npx babel --out-file script-compiled.js < script.js
# 使用插件 (opens new window)
通过 --plugins
参数指定要在编译过程中所使用的插件。
npx babel script.js --out-file script-compiled.js --plugins=@babel/proposal-class-properties,@babel/transform-modules-amd
# 使用 Preset
通过 --presets
参数来指定要在编译过程中所使用的 preset。
npx babel script.js --out-file script-compiled.js --presets=@babel/preset-env,@babel/flow
# 忽略 .babelrc.json 或 .babelrc 文件 (opens new window)
忽略项目中的 .babelrc
或 .babelrc.json
配置文件,并通过命令行(cli)参数来设置定制化的构建流程
npx babel --no-babelrc script.js --out-file script-compiled.js --presets=@babel/preset-env,@babel/preset-react
# 自定义配置文件路径 (opens new window)
npx babel --config-file /path/to/my/babel.config.json --out-dir dist ./src
# 设置文件扩展名 (opens new window)
添加于: v7.8.0
认情况下,Babel 将重写转译文件的扩展名,即改为 .js
。
如果要保留原始文件扩展名,可以使用 --keep-file-extension
参数。
你还可以通过使用 --out-file-extension .example-extension
参数来控制将要使用的扩展名,例如,babel src/ lib/ --out-file-extension .mjs
。
注意, --keep-file-extension
和 --out-file-extension
不能一起使用。
# 高阶用法 (opens new window)
还有很多参数可以使用,请参阅 options
、babel --help
和其他章节以获取更多信息。
← 编辑器 @babel/polyfill →