如何连接ES6模块?

Ben*_*Ben 21 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() {}
Run Code Online (Sandbox Code Playgroud)

Bri*_*van 6

2020-09-02 更新:前段时间世界语被Rollup取代,是这个问题的绝佳选择。根据您的需求,Webpack也可能是一个不错的选择。


如果您想做的是创建一个内部不使用 ES6 模块的 JavaScript 文件,以便您今天可以在浏览器/节点中使用它,那么我建议使用世界语(完全公开,我是该项目的维护者) . 它允许您创建一个将所有文件连接在一起的包,而无需使用加载程序,就像使用 browserify 或 webpack 一样。这通常会产生更小的代码(无加载器),更好地消除死代码(当使用像 Google Closure Compiler 或 UglifyJS 这样的压缩器时),以及更好的性能,因为 JS 解释器能够更好地优化结果。

这是一个示例用法,但请注意,有很多工具可以将世界语集成到您的工作流程中

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 );
});
Run Code Online (Sandbox Code Playgroud)

此示例取自有关捆绑 ES6 模块wiki 页面

  • 链接 esperantojs.org 转到一些色情/垃圾邮件站点 (3认同)

小智 2

我建议你看一下http://webpack.github.io,然后将它与 babel 结合起来。

或者你可以单独使用 babel 来完成:

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

  • 你能描述一下如何单独使用 babel cli 来实现它吗? (3认同)