具体情况,具体分析
下面是经典场景

一个页面一个JS

image.png

源码结构
image.png
webpack 配置

  1. module.exports={
  2. entry:{
  3. pageA:'./src/pageA/index.js',
  4. pageB:'./src/pageB/index.js',
  5. pageC:['./src/pageC/mian1.js','./src/pageC/mian2.js']
  6. }
  7. output{
  8. filename:'[name].[chunname].js'
  9. }
  10. }

这种方式适用于页面之间功能差异巨大,公共代码量少的情况,这种情况下打包出来的最终代码不会有太多重复

公共代码量太多的话,导致传输成本增加

一个页面多个JS

image.png
源码

image.png

webpack 配置

  1. module.exports={
  2. entry:{
  3. pageA:'./src/pageA/index.js',
  4. pageB:'./src/pageB/index.js',
  5. statistics:'./src/statistics/index.js'
  6. }
  7. output{
  8. filename:'[name].[chunname].js'
  9. }
  10. }

这中方式适用于页面之间有一些独立的,相同的功能,专门有一个chunk抽离这部分js有利于浏览器缓存这部分内容

为什么不使用多启动模块方式?

  • 可以使用多模式
  • 只是会增加传输成本

单页应用

所谓单页应用,是指整个网站(或者网站的某一个功能)只有一个页面 ,页面中的内容全靠js创建和控制.vue和react都是单页应用的利器

image.png

源码结构

image.png

webpack配置

  1. module.exports={
  2. entry:{
  3. pageA:'./src/index.js',
  4. }
  5. output{
  6. filename:'index.[hash:5].js'
  7. }
  8. }