Skip to content

Commit 7b1e90a

Browse files
committed
fix: make ssr-build-plugin compatible with webpack4/5 (fix vuejs#11718)
1 parent b641e1b commit 7b1e90a

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

src/server/template-renderer/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export default class TemplateRenderer {
5555
this.inject = options.inject !== false
5656
// if no template option is provided, the renderer is created
5757
// as a utility object for rendering assets like preload links and scripts.
58-
58+
5959
const { template } = options
6060
this.parsedTemplate = template
6161
? typeof template === 'string'
@@ -224,7 +224,7 @@ export default class TemplateRenderer {
224224
if (this.clientManifest) {
225225
const initial = this.preloadFiles.filter(({ file }) => isJS(file))
226226
const async = (this.getUsedAsyncFiles(context) || []).filter(({ file }) => isJS(file))
227-
const needed = [initial[0]].concat(async, initial.slice(1))
227+
const needed = [].concat(initial[0] ? [initial[0]] : [], async, initial.slice(1));
228228
return needed.map(({ file }) => {
229229
return `<script src="${this.publicPath}${file}" defer></script>`
230230
}).join('')

src/server/webpack-plugin/server.js

+3
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ export default class VueSSRServerPlugin {
5959
stats.assets.forEach(asset => {
6060
if (isJS(asset.name)) {
6161
bundle.files[asset.name] = compilation.assets[asset.name].source()
62+
if (asset.info && asset.info.related && asset.info.related.sourceMap) {
63+
bundle.maps[asset.info.related.sourceMap.replace(/\.map$/, '')] = JSON.parse(compilation.assets[asset.info.related.sourceMap].source());
64+
}
6265
} else if (asset.name.match(/\.js\.map$/)) {
6366
bundle.maps[asset.name.replace(/\.map$/, '')] = JSON.parse(compilation.assets[asset.name].source())
6467
}

0 commit comments

Comments
 (0)