es6模块是否否定了对browserify/webpack的需求?

Mik*_*gin 2 browserify ecmascript-6 webpack

ES6模块允许我们创建可以作为依赖项导出和导入的代码模块.

Browserify和Webpack做同样的事情.所以我正确地假设如果我使用ES6和像babel这样的东西来转换我的代码那么webpack和browserify是不是需要?

nil*_*ils 6

如果您在浏览器中使用它,您目前仍需要webpack或browserify.

我们来看一个例子:

下列

import * as name from 'name.js';
Run Code Online (Sandbox Code Playgroud)

变成了:

'use strict';

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }

var _nameJs = require('name.js'); // Here, a function named "require" is still needed

var name = _interopRequireWildcard(_nameJs);
Run Code Online (Sandbox Code Playgroud)

在Babel Repl中查看

如您所见,babel依赖于CommonJS方法require(实际上是它的任何实现)来进行导入.由于node.js实现了CommonJS,它可以工作,但目前没有浏览器实现它.AFAIK有没有支持任何浏览器ES 6个模块本身无论是.

  • 这个答案已经过时了。 (2认同)