我的节点webpack项目使用三个babel库.它们之间有什么区别?它们是如何被使用的?
"dependencies": {
"babel-runtime": "^5.8.24"
}
"dev-dependencies": {
"babel": "^5.8.23",
"babel-core": "^5.8.23"
}
Run Code Online (Sandbox Code Playgroud)
JMM*_*JMM 46
babel-core是API.对于v5,babel程序包是CLI并依赖于babel-core.对于v6,babel-cli程序包是CLI(但仍然是CLI bin命令babel),babel程序包不执行任何操作.babel-runtime我想只是运行时(polyfill和helpers)来支持已经转换过的代码.
Kev*_*vin 21
TL; DR这里要比较的事情是:
来自https://babeljs.io/blog/2015/10/31/setting-up-babel-6:
巴贝尔包裹已不复存在.以前,它是整个编译器和所有转换以及一堆CLI工具,但这导致不必要的大量下载并且有点令人困惑.现在我们将它分成两个独立的包:babel-cli和babel-core.
npm install --global babel-cli
要么
npm install --save-dev babel-core
如果您想使用CLI中的Babel,您可以安装babel-cli,或者如果您想使用Node API,您可以安装babel-core.
babel-runtime只允许不污染全局空间的polyfill,而不像babel-polyfill污染你的全局空间.来自http://babeljs.io/docs/plugins/transform-runtime/:
[babel-runtime]自动填充代码而不会污染全局变量.(建议在库/工具中使用此插件)
如果你使用babel-runtime,你也应该
npm install --save-dev babel-plugin-transform-runtime
在大多数情况下,您应该将babel-plugin-transform-runtime安装为开发依赖项(使用--save-dev)和babel-runtime作为生产依赖项(使用--save).
转换插件通常仅在开发中使用,但运行时本身将取决于您部署/发布的代码.
此外,babel-runtime + babel-plugin-transform-runtime和babel-polyfill通常是互斥的 - 这意味着你应该只使用其中一个.来自这里的评论http://jamesknelson.com/the-six-things-you-need-to-know-about-babel-6/:
你应该使用babel-polyfill或babel-runtime.它们是相互排斥的 - 除非你当然知道你在做什么.但它们基本上是一回事.这些只是帮手.babel-polyfill通过改变全局变量实现了相同的目标,而babel-runtime则模块化地实现了相同的目标.除非您正在开发库,否则我建议您使用polyfill.
| 归档时间: |
|
| 查看次数: |
17770 次 |
| 最近记录: |