module.exports = {}; exports = module.exports; exports['aaaa'] = 1; // 这样是可以的,在module.exports上加了一个属性 exports = 2; // 会导致exports脱离了对module.exports的引用 modules.exports = 2 // 这样 exports的至最后就是2
那么其实commonjs的规定就是使用exports进行导出,而我们经常使用module.exports导出,webpack此处的方式其实就是选择到底是用exports导出还是module.exports导出,区别在于
如果选择commonjs
// webpack输出为 exports['LibraryName'] = _entry_return_; // 使用库的方法为 require('library-name-in-npm')['LibraryName'].doSomething(); // 原因其实就是这么导出最后其实是 // modules.exports = { [LibraryName]: _entry_return_ }
如果选择commonjs2
// webpack输出为 module.exports = _entry_return_; // 使用库的方法为 require('library-name-in-npm').doSomething();
amd