由模块化引出的一系列名词——CommonJS、AMD、nodejs、ES6。
CommonJS、AMD
CommonJS与AMD是为了解决JavaScript文件之间的依赖与引用问题,它们只是一种JavaScript的包管理规范。
nodejs
nodejs是 CommonJS的 一种实现。
ES6
es6并没有沿用CommonJS的东西,它们之间并没有必要的联系。仅是在es6标准出来之前,大家都是用CommonJS或AMD规范来模块化。
总结
现在的浏览器很多暂不支持es6的语法,bebal能将es6的写法转换成es5的,但转换后的代码是遵循CommonJS规范的,然而CommonJS规范并不适用于浏览器环境,即仅是由bebal转换成的es5导入到浏览器会报错。而nodejs与webpack是遵循CommonJS规范的。所以
① 用bebal转成的es5写法可以在node环境中运行。
② 借助webpack将es5写法的代码打包成能够在浏览器上直接运行。