非模块化文件
非模块化文件指的是并不遵循任何一种模块标准的文件。
最常见的就是在 script标签引用jQuey及其各种插件
如何使用 Webpack打包这类文件呢? 其实只要直接引人即可,如:
import './jquery.min.js';
但假如我们引人的非模块化文件是以隐式全局变量声明的方式暴露其接口的,则会发生问题,如:
// 通过在顶层作用城声明交量的方式暴露接口
var calculator = {
// ...
}
由于 Webpack在打包时会为每一个文件包装一层函数作用域来避免全局污染,上面的代码无法把calculator对象挂载全局,因此这种以隐式全局变量生命需要额外注意
AMD
AMD是英文Asynchronous Module Definition (异步模块定义)的缩写,从名字就可以看到和CommonJS和ES6 Module最大的区别在于它加模块的方式是异步的。下面就是一个例子
define('getsum' , ['calculator'], function(math) (
return function(a, b) {
console.log('sum:'