From 54ae56e54e87b2dbeca40f37b55bb0eefccf7ddc Mon Sep 17 00:00:00 2001 From: zhongzhi107 Date: Wed, 6 Dec 2017 16:23:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20#14=20=E9=A1=B5=E9=9D=A2=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=8F=98=E6=9B=B4=E4=B9=9F=E4=BC=9A=E5=BD=B1=E5=93=8D?= =?UTF-8?q?=E5=88=B0vendor.js=E7=89=88=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 需要在页面增加对manifest.js的引用 1.vendor.js 2.manifest.js 3.页面.js --- src/config/webpack.build.babel.js | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/config/webpack.build.babel.js b/src/config/webpack.build.babel.js index c48a5c3..f18dbaa 100644 --- a/src/config/webpack.build.babel.js +++ b/src/config/webpack.build.babel.js @@ -6,6 +6,7 @@ import path from 'path'; import { isFunction } from 'util'; +import { yellow } from 'chalk'; import webpack from 'webpack'; import CleanPlugin from 'clean-webpack-plugin'; import ExtractTextPlugin from 'extract-text-webpack-plugin'; @@ -165,15 +166,29 @@ const webpackConfig = () => { ]; // 从配置文件中获取并生成webpack打包配置 + // fix: #14 + let chunkNames = []; if (commonChunks) { - const chunkKeys = Object.keys(commonChunks); - chunkKeys.forEach((key) => { + const manifestChunkName = 'manifest'; + chunkNames = Object.keys(commonChunks); + const lastChunkName = chunkNames[chunkNames.length - 1]; + // 确保manifest放在最后 + if (lastChunkName !== manifestChunkName) { + chunkNames.push(manifestChunkName); + } + // 检测chunk配置的有效性 + const index = chunkNames.indexOf(manifestChunkName); + if (index !== chunkNames.length - 1) { + // manifest位置不对时,校正配置并给出提示 + chunkNames.splice(index, 1); + console.log(yellow('⚠️ There is a problem with the manifest package configuration. Packing has automatically repaired the error configuration')); + } + chunkNames.filter(name => name !== manifestChunkName).forEach((key) => { entry[key] = commonChunks[key]; }); - - // 扩展阅读 http://webpack.github.io/docs/list-of-plugins.html#commonschunkplugin - plugins.push(new webpack.optimize.CommonsChunkPlugin({ names: chunkKeys })); } + // 扩展阅读 http://webpack.github.io/docs/list-of-plugins.html#commonschunkplugin + plugins.push(new webpack.optimize.CommonsChunkPlugin({ names: chunkNames })); if (minimize) { plugins.push(