webpack中output配置项中chunkFilename属性的用法

chunkFilename和webpack.optimize.CommonsChunkPlugin插件的作用差不多,都是用来将公共模块提取出来,但是用法不一样,这里主要介绍chunkFilename的使用

    entry:{
		main:__dirname + ‘/app/main.js‘,
		index:__dirname + ‘/app/index.js‘
	},
	output:{
		path:__dirname + ‘/public‘, //通过HtmlWebpackPlugin插件生成的html文件存放在这个目录下面
		filename:‘/js/[name].js‘, //编译生成的js文件存放到根目录下面的js目录下面,如果js目录不存在则自动创建
		/*
		 * chunkFilename用来打包require.ensure方法中引入的模块,如果该方法中没有引入任何模块则不会生成任何chunk块文件
		 * 比如在main.js文件中,require.ensure([],function(require){alert(11);}),这样不会打包块文件
		 * 只有这样才会打包生成块文件require.ensure([],function(require){alert(11);require(‘./greeter‘)})
		 * 或者这样require.ensure([‘./greeter‘],function(require){alert(11);})
		 * chunk的hash值只有在require.ensure中引入的模块发生变化,hash值才会改变
		 * 注意:对于不是在ensure方法中引入的模块,此属性不会生效,只能用CommonsChunkPlugin插件来提取
		 * */
		chunkFilename:‘js/[chunkhash:8].chunk.js‘
	},

如果开了web-dev-server服务器,当require.ensure方法中引入的模块发生变化,网站中加载的chunk.js文件的hash值会自动变化,而不需要手动重新打包或者重新运行web-dev-server。因为它会自动重新编译,但现有的chunk.js文件的hash并不会更新,只是网站中加载的chunk.js文件更新了。如图:

另外特别注意:如果某个文件只是引入了依赖的模块,却没有调用模块exports出来的方法,则该依赖模块里的代码不会执行,但网站还是会加载该chunk文件,如果exports的不是方法,而是其他类型的数据,则该依赖模块里的代码会执行。

时间: 2025-01-08 20:24:01

webpack中output配置项中chunkFilename属性的用法的相关文章

ajax配置项中的type与method

1. jQuery中ajax配置项中的使用type与method的区别 本质上两个配置项是没有区别的,区别在于两者出现的时间不同,type对于目前jQuery的版本全部兼容,也就是说 1 $.ajax({ 2 type: 'POST', 3 url: '/login', 4 dataType: 'json',若出现跨域请求请使用'jsonp' 5 data: { 6 'userName': userName, 7 'password': password 8 }, 9 success: func

【转】Webpack 快速上手(中)

由于文章篇幅较长,为了更好的阅读体验,本文分为上.中.下三篇: 上篇介绍了什么是 webpack,为什么需要 webpack,webpack 的文件输入和输出 中篇介绍了 webpack 在输入和输出这段中间所做的事情,也就是 loader 和 plugins 下篇介绍了 webpack 的优化,以及在开发环境和生产环境的不同用法 在上一篇中,介绍了通过设置 entry(入口文件)和output(出口文件),来对源代码进行处理,但是在处理过程中,webpack 是如何针对不同的文件进行打包的呢?

透过现象看webpack处理css文件中图片路径转换的具体过程

webpack是目前使用比较流行的一个前端模块打包器,前端的任何资源都被当成一个模块来处理,如图片.css文件等等.在基于webpack构建的前端项目中,一般都会配置有关css文件处理的规则,这其中也包括css文件中图片资源的处理,那么webpack到底是怎么处理它的呢?笔者之前也遇到过类似图片路劲的问题,为此还写过一篇博文webpack生成的css文件background-image url图片无法加载.今天就来说说webpack是怎么处理css文件中的图片路径的,首先上一个具体的例子. 一个

html5中form表单新增属性以及改良的input标签元素的种类

在HTML5中,表单新增了一些属性,input标签也有了更多的type类型,有些实现了js才能实现的特效,但目前有些浏览器不能全部支持.下面是一些h5在表单和input标签上的一些改动. <!DOCTYPE html><html> <head> <title>表单测试</title> <meta charset="utf-8" /> <!-- 在不支持h5的浏览器中,可以用CSS样式进行改写 --> &

[转] .NET 3.5中MSChart组件的ImageLocation属性含义

在.NET程序/网站中如果要生成统计图表/图形,以前可以采用OWC(Office Web Components),如OfficeXP组件OWC10.Office2003组件OWC11.OWC采用COM-DLL方式的调用接口,但主要缺憾 是生成的图片不够美观,不够“现代”. 现在,随着.NET 3.5的发布,其引入了新的MSChart组件,当然,已经彻底的.NET化了. 一.要使用这个新的图形组件,需要.NET 3.5 SP1环境.下载安装以下文件,分别是组件安装包.中文语言包.VS插件.MSCh

C#中的方括号[](特性、属性)

约定: 1.”attribute” 和 ”attributes” 均不翻译 2.”property” 译为“属性” 3.msdn 中的原句不翻译 4.”program entity” 译为 ” 语言元素 ” Attributes in C# 介绍 Attributes 是一种新的描述信息,我们既可以使用 attributes 来定义设计期信息(例如 帮助文件,文档的 URL ),还可以用 attributes 定义运行时信息(例如,使 XML 中的元素与类的成员字段关联起来).我们也可以用 at

HTML笔记二,HTML中的常用元素与属性(2)

语义相关元素 <mark>:用于显示关注的内容,通常用黄色显示 <time>:显示被标注内容是日期,时间等信息 两个特殊功能的元素 <meter>:用于表示一个已知最大最小值的计数仪器 value:指定计数仪器的当前值 min:指定计数仪器的最小值 max:指定计数仪器的最大值 low:指定计数仪器指定范围的最小值 high:指定计数仪器指定范围的最大值 optimum:指定计数仪器有效范围的最佳值 <progress>:用于表示一个进度条 max:指定进度

JavaScript中闭包实现的私有属性的getter()和setter()方法

注意: 以下的输出都在浏览器的控制台中 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>闭包</title> </head> <body> <script type="text/javascript"> /** * 利用闭包实现 * 这个函数给对象o增加了属性存储器方法 * 方法名称为ge

JS学习之DOM节点的关系属性封装、克隆节点、Dom中Style常用的一些属性等小结

JS DOM节点: 在JS DOM中节点的关系被定义为节点的属性: 通常有以下几种节点之间的关系: (这里的关系是所有浏览器都支持的) parentNode    父节点 childNodes    子节点 firstChild    父节点里的第一个子节点 lastChild     父节点里的最后一个子节点 nextSibling    与子节点并列的下一个兄弟节点 previousSibling   与子节点并列的上一个兄弟节点 火狐与谷歌支持而ie8不支持的节点关系有: previous