仅向节点添加ES2015模块支持

时间:2016-09-07 09:10:39

标签: ecmascript-6 babeljs

我正在尝试向ES添加导入/导出功能,因为它存在于ES6中。

我知道Babel可用于获取所有ES6功能,但我想看看是否有一种方法我可以使用Babel只添加导入/导出功能,如果是这样的话?

1 个答案:

答案 0 :(得分:2)

是的,您可以使用transform-es2015-modules-commonjs插件。

  

此插件将ES2015模块转换为CommonJS。

安装它:

npm install babel-plugin-transform-es2015-modules-commonjs --save

.babelrc

中声明
{
  "plugins": [
    "transform-es2015-modules-commonjs"
  ]
}

如果您发现自己需要require使用ES2015模块语法声明其导出的模块的默认导出,则必须执行以下操作:

var defaultExport = require('./es2015-module').default

要避免这种情况,请安装babel-plugin-add-module-exports插件,然后更新.babelrc

npm install babel-plugin-add-module-exports --save
{
  "plugins": [
    "add-module-exports",
    "transform-es2015-modules-commonjs"
  ]
}

______

要在您的应用程序中使用此Babel配置,请使用babel-register require hook

在您的应用程序的条目文件中,例如:

// index.js
require('babel-register')
require('./app.js')

然后开始使用ES2015模块语法:

// app.js
import something from './something'