You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
__webpack_require__.r(__webpack_exports__);
var _b__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./src/b.js");
let a = _b__WEBPACK_IMPORTED_MODULE_0__["default"] + 1;
普通模块
webpack.config.js
入口
index.js
b.js
删除注释后的app.js代码如下,这就是打包后代码
可以看出在整体上这是一个IIFE函数
webpack首先会加载入口模块,从入口模块再去加载其他的模块。
经过webpack封装后的index.js如下
可以看到首先执行__webpack_require__.r 在exports上定义__esModule属性,然后导入其他依赖的模块.
再来看b.js
对于非默认导出的属性,会调用__webpack_require__.d方法在exports定义其getter,对于默认导出的属性直接赋值给exports.defalut。
异步模块
将a.js改为异步加载
dist目录会多出一个0.js的文件,这个就是加载的a.js,同时入口文件也有一些变化。
先看index.js
import方法被转成了__webpack_require__.e,这个方法会传入一个chunkId(本例子中是0),去加载对应的chunk,然后返回一个promise,当模块加载完成后再调用__webpack_require__去安装模块。
0.js
webpackJsonp是全局的,push方法其实webpackJsonpCallback方法
在app.js中将push方法被赋值为webpackJsonpCallback
这个app.js和同步加载的方式比起来有以下变化。
The text was updated successfully, but these errors were encountered: