如何连接ES6模块?

时间:2014-12-15 16:22:51

标签: javascript module ecmascript-6 es6-modules

如何连接ES6模块?

var foo = 2; // This would normally be scoped to the module.
export function Bar() {}

// ...concatenate...

import { Bar } from 'javascripts/bar' //This file no longer exists in the concatenated scenario.
export function Bam() {}

2 个答案:

答案 0 :(得分:4)

如果您要做的是创建一个内部不使用ES6模块的JavaScript文件,以便今天可以将它与浏览器/节点一起使用,那么我建议使用Esperanto(完全披露,我'是项目的维护者)。它允许您创建一个捆绑包,将所有文件连接在一起,而无需使用加载器,就像使用browserify或webpack之类的东西一样。这通常导致更小的代码(没有加载器),更好的死代码消除(当使用像Google Closure Compiler或UglifyJS这样的缩小器时),以及更好的性能,因为JS解释器能够更好地优化结果。

以下是一个示例用法,但请注意plenty of tools to integrate Esperanto into your workflow

var fs = require( 'fs' );
var esperanto = require( 'esperanto' );

esperanto.bundle({
  base: 'src', // optional, defaults to current dir
  entry: 'mean.js' // the '.js' is optional
}).then( function ( bundle ) {
  var cjs = bundle.toCjs();
  fs.writeFile( 'dist/mean.js', cjs.code );
});

此示例取自wiki page on bundling ES6 modules

答案 1 :(得分:1)

我建议您查看http://webpack.github.io然后将其与babel结合使用。

或者你可以单独使用babel:

https://babeljs.io/docs/usage/cli/