在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ webpack的splitChunks的問題。

webpack的splitChunks的問題。

最近在嘗試使用webpack4構(gòu)建一個一般的多頁面多入口的應(yīng)用。

公用組件和第三方node_modules都是通過splitChunks來提取出來的。看結(jié)果也分離出來了。

每個entry頁面的html文件是通過html-webpack-plugin指定的。

問題來了,怎么動態(tài)將splitChunks分離出來的chunk js文件,自動添加到html中?有沒有現(xiàn)成的插件,還是說只能分離出文件來后,手動去添加?

回答
編輯回答
入她眼

可以將entry配置與htmlwebpackplugins配置通過遍歷的方式抽離出來.
可以參考webpack-mutipage-tempalte
這是入口配置部分

// 多頁面配置
const glob = require('glob')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const { resolve } = require('./utils')

const entries = glob.sync(resolve('src/page/**/*.js'))
const entriesOpt = {}
const pluginsOpt = []

const faviconPath = resolve('src/image/favicon/favicon.png')

entries.forEach(item => {
  const chunkName = item.match(/src\/page\/(.+)\.js/)[1]
  const templatePath = item.replace(/.js$/, '.html')
  let fileName = templatePath.match(/src\/(page\/.+\.html$)/)[1]

  entriesOpt[chunkName] = item

  pluginsOpt.push(
    new HtmlWebpackPlugin({
      favicon: faviconPath,
      filename: fileName,
      template: templatePath,
      chunks: ['vendor', 'manifest', 'common-styles', chunkName],
      minify: {
        removeComments: true,
        collapseWhitespace: true,
        removeAttributeQuotes: true
      }
    })
  )
})

const config = {
  entry: entriesOpt,
  plugins: pluginsOpt
}

module.exports = config
2018年1月30日 00:55
編輯回答
神經(jīng)質(zhì)

新分離出來的chunk塊,可以在html模板中指定所需要的chunk塊,下圖是我的配置

clipboard.png
common/common.js 和 common/vendor.js 是新分離出來的chunk,

clipboard.png
在每個html模板中指定特定的塊

希望能幫到你!

2017年12月31日 19:35