Webpack之Code Splitting 代码分块
如何实现代码分块
默认情况webpack会将资源文件打包成一个js文件,比如app.bundle.js
实际情况我们需要按需加载
方法如下:
require.ensure(dependencies, callback)
require.ensure(["module-a", "module-b"], function(require) {
var a = require("module-a");
// ...
});
这种方式只加载组件,不会执行,除非你在callback里require了该组件。
require(dependencies, callback)
require(["module-a", "module-b"], function(a, b) {
// ...
});
会加载组件并立即执行
例子:
创建三个文件
main.js,firstScript.js和secondScript.js
main.js的内容
require.ensure(["./firstScript.js"], function(require) {
}); require(["./secondScript.js"], function(require) {
});
firstScript.js的内容
window.a = 1;
secondScript.js
window.b = 1;
运行webpack
webpack -w
打开开发者工具在network中会看到代码分为了三个块加载。并且在console中可以直接运行b,但无法运行a。
如何配置分块
在webpack.config.js中设置chunkFilename可以配置命名规则
output: {
path: './bin',
filename: 'app.bundle.js',
publicPath: "/finley/JS/WebPack/bin/",
// chunkFilename: '[id].[chunkhash].js',
// chunkFilename: '[name].[chunkhash].js',
},
如何在模版中全部引入分块文件?
在webpack配置文件中添加
plugins: [
new webpack.optimize.CommonsChunkPlugin(/* chunkName= */"vendor", /* filename= */"vendor.bundle.js")
]
这样会将所有的依赖文件放到vendor.bundle.js中
在模版中
<script src="vendor.bundle.js"></script>
<script src="bundle.js"></script>
参考:http://webpack.github.io/docs/code-splitting.html
Webpack之Code Splitting 代码分块的更多相关文章
- webpack 和 code splitting
Code Splitting指的是代码分割,那么什么是代码分割,webpack和code splitting又有什么样的联系呢? 使用npm run dev:"webpack-dev-ser ...
- webpack 利用Code Splitting 分批打包、按需下载
webpack中的解决方案——Code Splitting,简单来说就是按需加载(下载),如果是requireJS对应的AMD的方案中这本是在正常不过了.但是在webpack中All in one的思 ...
- webpack Code Splitting浅析
Code Splitting是webpack的一个重要特性,他允许你将代码打包生成多个bundle.对多页应用来说,它是必须的,因为必须要配置多个入口生成多个bundle:对于单页应用来说,如果只打包 ...
- webpack优化之code splitting
作为当前风头正盛的打包工具,webpack风靡前端界.确实作为引领了一个时代的打包工具,很多方面都带来了颠覆性的改进,让我们更加的感受到自动化的快感.不过最为大家诟病的一点就是用起来太难了. 要想愉快 ...
- [转] react-router4 + webpack Code Splitting
项目升级为react-router4后,就尝试着根据官方文档进行代码分割.https://reacttraining.com/react-router/web/guides/code-splittin ...
- react-router4 + webpack Code Splitting
项目升级为react-router4后,就尝试着根据官方文档进行代码分割.https://reacttraining.com/react-router/web/guides/code-splittin ...
- [Webpack 2] Maintain sane file sizes with webpack code splitting
As a Single Page Application grows in size, the size of the payload can become a real problem for pe ...
- webpack 学习笔记 03 Code Splitting
Introduction 对于较大的web 应用来说,将所有的代码文件压缩成一个文件是不合适的,在部分代码文件只有特殊情况下才被需要的情况下,这无疑是一种浪费.webpack 提供了讲代码文件分块的能 ...
- webpack async load modules & dynamic code splitting
webpack async load modules & dynamic code splitting webpack 按需/异步加载/Code Splitting webpack loade ...
随机推荐
- 如何生成.mobileprovision文件
如何生成.mobileprovision文件 本人视频教程系列 **.mobileprovision文件的生成的第一步就需要你提供一个用于开发的App ID 1. 创建App ID 创建一个bundl ...
- 详细说明php的4中开源框架(TP,CI,Laravel,Yii)
ThinkPHP简称TP,TP借鉴了Java思想,基于PHP5,充分利用了PHP5的特性,部署简单只需要一个入口文件,一起搞定,简单高效.中文文档齐全,入门超级简单.自带模板引擎,具有独特的数据验证和 ...
- zabbix的日常监控-磁盘性能监控(十二)
监控磁盘的性能 参考文章: https://wiki.enchtex.info/howto/zabbix/zabbix_iostat_monitoring https://blog.csdn.net/ ...
- 团队作业4(Alpha版本)
项目名称:音乐播放器 项目成员: 张慧敏(201421122032) 苏晓薇(201421031033) 欧阳时康(201421122050) 会议记录: 主要讨论任务的分配和实现过程中已实现和未实 ...
- debian 7 终端上无法调出输出法
debian 7 终端konsole上无法调出输出法,无法输入汉字的问题解决方案, export GTK_IM_MODULE=fcitxexport QT_IM_MODULE=fcitxexport ...
- Java设计模式16:常用设计模式之观察者模式(行为型模式)
1. Java之观察者模式(Observer Pattern) (1)概述: 生活中我们在使用新闻app,当我们对某一栏比较感兴趣,我们往往会订阅这栏新闻,比如我对军事栏感兴趣,我就会订阅军事栏的新闻 ...
- Python自动化之django model验证(很弱,感觉应用场景不多)
django model的数据验证 使用full_clean进行验证 obj = models.UserInfo(name="alex",email="tiantian& ...
- 在handlebars.js {{#if}}条件下的逻辑运算符解决方案
解决方案.这增加了比较运算符. Handlebars.registerHelper('ifCond', function (v1, operator, v2, options) { switch (o ...
- 【ThinkingInC++】75、多重继承
第九章 多重继承 9.2 接口继承 Intertfacees.cpp /** * 书本:[ThinkingInC++] * 功能:接口继承Interfaces.cpp * 时间:2014年10月28日 ...
- iOS与硬件通讯(socket,data拼接,发送指令,解析指令)
最近项目中用到了iPad驱动硬件来工作,也就是智能硬件的实现.下面简单说下原理,详细说下socket,wifi通信,数据处理接收,发送,以及数据解析代码. 首先,来说下通信.因为硬件部件比较多,我们采 ...