Skip to content

Vue2项目资料:vue-todo webpack 优化

chunk 可理解为 我们写的entry 里,声明的不同入口对应文件(节点)。 使用异步加载模块时,每一个加载模块就是一个单独的chunk。

entry: { app1: ... app2: ... }

直接使用 [hash] 打包出来的 整个应用的 hash(相同于一次这一次打包 生成的一个唯一ID) 使用 [chunkHash] 每一个entry节点 会单独生成一个唯一ID。 所以打包公共类库 必须使用 chunkHash

js
config.plugins.push(
  // 讲 css 单独打包成一个 css文件
  new ExtractTextPlugin('styles.[contentHash:8].css'),
  new webpack.optimize.CommonChunkPlugin({
    name: 'vendor'
    // 这里对应 我们在 entry 里写的入口名
  }),
  new webpack.optimize.CommonChunkPlugin({
    name: 'runtime'
  })
)

webpack打包时,会给每一个模块单独加上一个ID, 在有新的模块加入时,模块插入的顺序在中间,导致后面的模块顺序发生变化

这里可以理解为: 我们给ul 的每个li 定义了一个index值,对应其索引。当在中间插入一个li时,后续的每个li的索引都加了1。 li既然都变了,对于没用框架的html上的dom来说ul其实就已变化了

接上,多添加一个

new webpack.optimize.CommonChunkPlugin({ name: 'runtime' })

不管我们后来的模块怎么加,我们已打包过的vendor 就不会变,那么打包时的性能是不是提升了呢?

共 20 个模块,1301 篇 Markdown 文档。