| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> webpack-code split代码分割 -> 正文阅读 |
|
[JavaScript知识库]webpack-code split代码分割 |
在前面的学习中,可以发现,js代码都打包成了一个文件。 ?这样使得js文件很大,影响加载速度,我们希望能将文件进行分割,这样可以实现多个文件并行加载,速度更快,另外代码分割之后还可以实现按需加载等功能。 代码分割方法一:通过入口文件进行代码分割项目里面有两个js文件(index.js,test.js),可以通过设置entry实现多个入口,从而打包生成多个js文件。
output修改输出文件名filename:'js/[name].[contenthash:10].js',
执行webpakc命令 可以看到打包生成了两个js文件。 但是这种方法有一点缺点:如果js文件名修改,或者js文件增加或者减少时,都需要修改配置很不方便。? 代码分割方法二:通过splitChunks属性进行代码分割单入口分析不配置splitChunks将入口文件还原为单入口,然后在index.js中引入jquery,
?执行webpack命令: ?在webpack.config.js中配置splitChunks
重新执行webpack? ? ?可以看到代码进行了分割。 splitChunks可以将node_modules中的代码单独打包成一个chunk输出 多入口分析代码设置成多入口,并且在test中也引入jquery
不配置splitChunks执行webpack命令 从打包后的文件大小可以看出,当多个入口都引入同一个库文件时,每个入口都会将库文件打包进去,这很不友好,如果整个项目只打包一次才是我们想要的。 ?在webpack.config.js中配置splitChunks设置了splitChunks之后,再重新运行webpack命令 从打包输出文件可以明显看出jquery文件只打包了一次,并且输出了3个文件(一个node_modules库文件,两个入口文件)。这样项目的输出文件就减小了很多。 所以,splitChunks 会自动分析多个入口chunk中,有没有公共的文件,如果有则会打包成单独的一个chunk,而不会重复加载? 代码分割方法三:通过js代码进行代码分割将配置修改为单入口,这样虽然设置了splitChunks,但是也只会将node_modules中文件单独打包。 在index.js中引入test.js文件
执行webpack: 可以看到只打包了jquery库文件和index.js文件,test.js并没有单独打包。我们希望能将test文件也单独打包,该怎么处理呢?可以通过js代码,让某个文件单独打包成一个chunk 修改test.js的引入方式
?输出result中是es6的module,在module中有test.js中的方法,如果需要使用test.js中的方法,就需要直接传入方法
这种方法就是通过import动态倒入语法,能将某个文件单独打包 但是,从打包的输出文件可以看出输出的名字不是我们想要的。我们希望能够指定文件名。 可以通过webpackChunkName来设置打包输出的文件名
?可以看到重新运行后的test.js的输出文件名已经是我们指定的路。 |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 10:55:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |