diff --git a/lib/builder/webpack/plugins/vue/client.js b/lib/builder/webpack/plugins/vue/client.js index ffc8a8e0d5..aa03e5e474 100644 --- a/lib/builder/webpack/plugins/vue/client.js +++ b/lib/builder/webpack/plugins/vue/client.js @@ -1,6 +1,6 @@ import hash from 'hash-sum' -import uniq from 'lodash.uniq' -import { isJS, onEmit } from './util' +import uniq from 'lodash/uniq' +import { isJS, isCSS, onEmit } from './util' export default class VueSSRClientPlugin { constructor(options = {}) { @@ -19,10 +19,10 @@ export default class VueSSRClientPlugin { const initialFiles = uniq(Object.keys(stats.entrypoints) .map(name => stats.entrypoints[name].assets) .reduce((assets, all) => all.concat(assets), []) - .filter(isJS)) + .filter((file) => isJS(file) || isCSS(file))) const asyncFiles = allFiles - .filter(isJS) + .filter((file) => isJS(file) || isCSS(file)) .filter(file => initialFiles.indexOf(file) < 0) const manifest = { @@ -43,7 +43,8 @@ export default class VueSSRClientPlugin { if (!chunk || !chunk.files) { return } - const files = manifest.modules[hash(m.identifier)] = chunk.files.map(fileToIndex) + const id = m.identifier.replace(/\s\w+$/, '') // remove appended hash + const files = manifest.modules[hash(id)] = chunk.files.map(fileToIndex) // find all asset modules associated with the same chunk assetModules.forEach(m => { if (m.chunks.some(id => id === cid)) {