@@ -286,7 +286,7 @@ module.exports = function (content) {
286286
287287 // add requires for styles
288288 if ( parts . styles . length ) {
289- output + = '\n/* styles */ \n'
289+ var styleInjectionCode = 'function __injectVueStyle__ () { \n'
290290 var hasModules = false
291291 parts . styles . forEach ( function ( style , i ) {
292292 // require style
@@ -302,11 +302,11 @@ module.exports = function (content) {
302302 }
303303 if ( ! hasModules ) {
304304 hasModules = true
305- output += 'var cssModules = {}\n'
305+ styleInjectionCode += 'var cssModules = {}\n'
306306 }
307307 if ( moduleName in cssModules ) {
308308 loaderContext . emitError ( 'CSS module name "' + moduleName + '" is not unique!' )
309- output += requireString
309+ styleInjectionCode += requireString
310310 } else {
311311 cssModules [ moduleName ] = true
312312
@@ -317,21 +317,25 @@ module.exports = function (content) {
317317 requireString += '.locals'
318318 }
319319
320- output += 'cssModules["' + moduleName + '"] = ' + requireString + '\n'
320+ styleInjectionCode += 'cssModules["' + moduleName + '"] = ' + requireString + '\n'
321321 }
322322 } else {
323- output += requireString + '\n'
323+ styleInjectionCode += requireString + '\n'
324324 }
325325 } )
326- output += '\n'
326+ if ( hasModules ) {
327+ styleInjectionCode += `return cssModules`
328+ }
329+ styleInjectionCode += '}\n'
330+ output += styleInjectionCode
327331 }
328332
329333 // we require the component normalizer function, and call it like so:
330334 // normalizeComponent(
331335 // scriptExports,
332336 // compiledTemplate,
333- // scopeId ,
334- // cssModules
337+ // injectStyles ,
338+ // scopeId
335339 // )
336340 output += 'var Component = require(' +
337341 loaderUtils . stringifyRequest ( loaderContext , '!' + componentNormalizerPath ) +
@@ -365,19 +369,13 @@ module.exports = function (content) {
365369 }
366370 output += ',\n'
367371
372+ // style
373+ output += ' /* styles */\n '
374+ output += ( parts . styles . length ? '__injectVueStyle__' : 'null' ) + ',\n'
375+
368376 // scopeId
369377 output += ' /* scopeId */\n '
370- output += ( hasScoped ? JSON . stringify ( moduleId ) : 'null' ) + ',\n'
371-
372- // cssModules
373- output += ' /* cssModules */\n '
374- if ( cssModules ) {
375- // inject style modules as computed properties
376- output += 'cssModules'
377- } else {
378- output += 'null'
379- }
380- output += '\n'
378+ output += ( hasScoped ? JSON . stringify ( moduleId ) : 'null' ) + '\n'
381379
382380 // close normalizeComponent call
383381 output += ')\n'
0 commit comments