@@ -282,10 +282,10 @@ module.exports = function (content) {
282
282
var hasScoped = parts . styles . some ( function ( s ) { return s . scoped } )
283
283
284
284
// add requires for styles
285
+ var cssModules
285
286
if ( parts . styles . length ) {
286
287
var styleInjectionCode =
287
- 'function __injectVueStyle__ (vm, context) {\n'
288
- var cssModules = { }
288
+ 'function injectStyle (cssModuleTarget, ssrContext) {\n'
289
289
parts . styles . forEach ( function ( style , i ) {
290
290
// require style
291
291
var requireString = style . src
@@ -297,15 +297,16 @@ module.exports = function (content) {
297
297
// vue-style-loader exposes inject functions during SSR so they are
298
298
// always called
299
299
var invokeStyle = isServer && hasVueStyleLoader
300
- ? code => `;(${ code } ).__inject__(context) `
301
- : code => code
300
+ ? code => ` ;(${ code } ).__inject__(ssrContext)\n `
301
+ : code => ` ${ code } \n`
302
302
303
303
var moduleName = ( style . module === true ) ? '$style' : style . module
304
304
// setCssModule
305
305
if ( moduleName ) {
306
+ cssModules = cssModules || { }
306
307
if ( moduleName in cssModules ) {
307
308
loaderContext . emitError ( 'CSS module name "' + moduleName + '" is not unique!' )
308
- styleInjectionCode += invokeStyle ( requireString ) + '\n'
309
+ styleInjectionCode += invokeStyle ( requireString )
309
310
} else {
310
311
cssModules [ moduleName ] = true
311
312
@@ -316,12 +317,15 @@ module.exports = function (content) {
316
317
requireString += '.locals'
317
318
}
318
319
319
- styleInjectionCode += invokeStyle ( 'vm ["' + moduleName + '"] = ' + requireString ) + '\n'
320
+ styleInjectionCode += invokeStyle ( 'cssModuleTarget ["' + moduleName + '"] = ' + requireString )
320
321
}
321
322
} else {
322
- styleInjectionCode += invokeStyle ( requireString ) + '\n'
323
+ styleInjectionCode += invokeStyle ( requireString )
323
324
}
324
325
} )
326
+ if ( cssModules ) {
327
+ styleInjectionCode += ' return cssModuleTarget\n'
328
+ }
325
329
styleInjectionCode += '}\n'
326
330
output += styleInjectionCode
327
331
}
@@ -331,7 +335,8 @@ module.exports = function (content) {
331
335
// scriptExports,
332
336
// compiledTemplate,
333
337
// injectStyles,
334
- // scopeId
338
+ // scopeId,
339
+ // isServer
335
340
// )
336
341
output += 'var Component = require(' +
337
342
loaderUtils . stringifyRequest ( loaderContext , '!' + componentNormalizerPath ) +
@@ -367,11 +372,15 @@ module.exports = function (content) {
367
372
368
373
// style
369
374
output += ' /* styles */\n '
370
- output += ( parts . styles . length ? '__injectVueStyle__ ' : 'null' ) + ',\n'
375
+ output += ( parts . styles . length ? 'injectStyle ' : 'null' ) + ',\n'
371
376
372
377
// scopeId
373
378
output += ' /* scopeId */\n '
374
- output += ( hasScoped ? JSON . stringify ( moduleId ) : 'null' ) + '\n'
379
+ output += ( hasScoped ? JSON . stringify ( moduleId ) : 'null' ) + ',\n'
380
+
381
+ // isServer
382
+ output += ' /* isServer */\n '
383
+ output += ( isServer ? 'true' : 'false' ) + '\n'
375
384
376
385
// close normalizeComponent call
377
386
output += ')\n'
0 commit comments