webpack的配置文件:webpack.config.js,里面有
entry:js的入口文件
externals:外部依赖的声明
output:目标文件
resolve:配置别名
module:各种文件,各种loader
plugins:插件
webpack最重要的:webpack loaders
webpack和nodejs使用的都是commonJS规范,所谓commmonJS规范,就是模块化的一个规范,方便的使用别人的代码,想要什么功能就加载什么模块。类似于一个库,开发者可以使用commonJS API编写应用程序,这些应用可以运行在不同的js解释器和不同的主机环境中。
在CommonJS中,有一个全局性方法require(),用于加载模块。假定有一个数学模块math.js,就可以像下面这样加载。
var math = require('math');
然后,就可以调用模块提供的方法:
var math = require('math');
math.add(2,3); // 5
CommonJS定义的模块分为:{模块引用(require)} {模块定义(exports)} {模块标识(module)}
require()用来引入外部模块;exports对象用于导出当前模块的方法或变量,唯一的导出口;module对象就代表模块本身。
注意的是module被加载时执行,加载后缓存
另外一个模块化规范是AMD规范,它与commonJS不同之处在于它是异步的,更适合在浏览器端使用,而commonJS更适用于服务器端(同步)。因为所有的模块都存放在本地硬盘,可以同步加载完成,等待时间就是硬盘的读取时间。但是,对于浏览器,这却是一个大问题,因为模块都放在服务器端,等待时间取决于网速的快慢,可能要等很长时间,浏览器处于”假死”状态。
因此,浏览器端的模块,不能采用”同步加载”(synchronous),只能采用”异步加载”(asynchronous)。这就是AMD规范诞生的背景。