【发布时间】:2016-09-07 22:51:59
【问题描述】:
我正在尝试向 Node 添加 ES6 中存在的导入/导出功能。
我知道 Babel 可用于获得所有 ES6 功能,但我想看看是否有一种方法可以使用 Babel 仅添加导入/导出功能,如果可以,如何?
【问题讨论】:
标签: ecmascript-6 babeljs
我正在尝试向 Node 添加 ES6 中存在的导入/导出功能。
我知道 Babel 可用于获得所有 ES6 功能,但我想看看是否有一种方法可以使用 Babel 仅添加导入/导出功能,如果可以,如何?
【问题讨论】:
标签: ecmascript-6 babeljs
是的,您可以使用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'
【讨论】:
babel-register。
babel-register 要求挂钩的文档。 :-)