当前位置:  开发笔记 > 编程语言 > 正文

如何在Babel 6中使用babel-runtime?

如何解决《如何在Babel6中使用babel-runtime?》经验,为你挑选了2个好方法。

我正在尝试创建npm模块,我在官方babeljs网站上找不到单一指令.你如何使用babel-runtime包?从名字我猜它应该放在package.json的"依赖"部分,对吧?

绝对没有信息:https://github.com/babel/babel/tree/master/packages/babel-runtime

在这里找到一个例子:https://strongloop.com/strongblog/javascript-babel-future/但是当我运行"babel -h"时它没有列出--optional作为有效参数.



1> aymericbeaum..:
合理

在编译代码时,Babel实际上会注入帮助程序来模拟您所针对的ES版本不支持的功能.

例如:class MyClass {}利用内联帮助程序_classCallCheck,也可以通过它访问require('babel-runtime/helpers/classCallCheck').

默认情况下,这些帮助程序不在编译单元(文件)之间共享.Babel团队虽然将它们分解在一个地方可能会很有趣,但是当它们被多次使用时可以节省空间.

这个问题已经通过创建babel-plugin-transform-runtime插件来解决,该插件遍历AST并根据babel-runtime模块的适当要求替换帮助程序注入.这样,帮助程序在代码库中共享,避免了重复.

如何使用它

假设你有一个正在运行的Babel环境:

    安装babel-plugin-transform-runtime(作为a devDependency),它会转换您的代码以删除帮助程序并使用其中的帮助程序babel-runtime.您需要将其添加到pluginsBabel配置的数组中

    安装babel-runtime(作为a dependency),这是实际的库babel-plugin-transform-runtime假定您将拥有dependencies它,它将在运行时由您的转换代码使用.您无需在代码中的任何位置要求它.

最小的片段

npm run buildlib文件夹编译成dist

npm start启动dist文件夹(取决于babel-runtime)

的package.json

{
  "scripts": {
    "build": "babel lib --out-dir=dist",
    "start": "node dist"
  },
  "dependencies": {
    "babel-runtime": "^6.9.2"
  },
  "devDependencies": {
    "babel-cli": "^6.10.1",
    "babel-plugin-transform-runtime": "^6.9.0"
  },
  "babel": {
    "plugins": [
      "transform-runtime"
    ]
  }
}



2> loganfsmyth..:

运行时是可选的,但与Babel 6中的其他所有内容一样,它主要通过添加插件来启用.在这种情况下,您需要http://babeljs.io/docs/plugins/transform-runtime/

plugins: ["transform-runtime"]

babel-runtime是一个包含polyfill和Babel可以引用的许多其他东西的包.你可以在你的应用程序中安装它npm install babel-runtime

transform-runtime是一个Babel插件,用于处理源代码和注入import foo from "babel-runtime"语句,以便babel-runtime实际使用.你也可以安装它npm install babel-plugin-transform-runtime.


那么'transform-runtime'插件包和'babel-runtime'包之间有什么不同?我如何验证这是否有效?
推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有