电商网站建设最好的公司,国外公司在国内建网站,网站空格键代码,php+缺少+wordpress模块化机制
webpack并不强制你使用某种模块化方案#xff0c;而是通过兼容所有模块化方案让你无痛接入项目。有了webpack#xff0c;你可以随意选择你喜欢的模块化方案#xff0c;至于怎么处理模块之间的依赖关系及如何按需打包#xff0c;webpack会帮你处理好的。
关于模…模块化机制
webpack并不强制你使用某种模块化方案而是通过兼容所有模块化方案让你无痛接入项目。有了webpack你可以随意选择你喜欢的模块化方案至于怎么处理模块之间的依赖关系及如何按需打包webpack会帮你处理好的。
关于模块化的一些内容可以看看我之前的文章js的模块化进程 核心思想 一切皆模块 正如js文件可以是一个“模块module”一样其他的如css、image或html文件也可视作模 块。因此你可以require(‘myJSfile.js’)亦可以require(‘myCSSfile.css’)。这意味着我们可以将事物业务分割成更小的易于管理的片段从而达到重复利用等的目的。 按需加载 传统的模块打包工具module bundlers最终将所有的模块编译生成一个庞大的bundle.js文件。但是在真实的app里边“bundle.js”文件可能有10M到15M之大可能会导致应用一直处于加载中状态。因此Webpack使用许多特性来分割代码然后生成多个“bundle”文件而且异步加载部分代码以实现按需加载。 文件管理 每个文件都是一个资源可以用require/import导入js 每个入口文件会把自己所依赖(即require)的资源全部打包在一起一个资源多次引用的话只会打包一份 对于多个入口的情况其实就是分别独立的执行单个入口情况每个入口文件不相干(可用CommonsChunkPlugin优化) 打包原理 把所有依赖打包成一个bundle.js文件通过代码分割成单元片段并按需加载。 在这里插入图片描述 如图entry.js是入口文件调用了util1.js和util2.js而util1.js又调用了util2.js。 打包后的bundle.js例子 /*****/ ([ / 0 / //模块id /**/ function(module, exports, webpack_require) { webpack_require(1); //require资源文件id webpack_require(2); /**/ }, / 1 / /**/ function(module, exports, webpack_require) { //util1.js文件 webpack_require(2); var util11; exports.util1util1; /**/ }, / 2 / /**/ function(module, exports) { //util2.js文件 var util21; exports.util2util2; /***/ } … … /******/ ]); bundle.js是以模块 id 为记号通过函数把各个文件依赖封装达到分割效果如上代码 id 为 0 表示 entry 模块需要的依赖 1 表示 util1模块需要的依赖 require资源文件 id 表示该文件需要加载的各个模块如上代码_webpack_require__(1) 表示 util1.js 模块webpack_require(2) 表示 util2.js 模块 exports.util1util1 模块化的体现输出该模块