first commit
This commit is contained in:
80
app_vue/node_modules/vue-style-loader/lib/addStylesServer.js
generated
vendored
Normal file
80
app_vue/node_modules/vue-style-loader/lib/addStylesServer.js
generated
vendored
Normal file
@ -0,0 +1,80 @@
|
||||
import listToStyles from './listToStyles'
|
||||
|
||||
export default function addStylesServer (parentId, list, isProduction, context) {
|
||||
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
|
||||
context = __VUE_SSR_CONTEXT__
|
||||
}
|
||||
if (context) {
|
||||
if (!context.hasOwnProperty('styles')) {
|
||||
Object.defineProperty(context, 'styles', {
|
||||
enumerable: true,
|
||||
get: function() {
|
||||
return renderStyles(context._styles)
|
||||
}
|
||||
})
|
||||
// expose renderStyles for vue-server-renderer (vuejs/#6353)
|
||||
context._renderStyles = renderStyles
|
||||
}
|
||||
|
||||
var styles = context._styles || (context._styles = {})
|
||||
list = listToStyles(parentId, list)
|
||||
if (isProduction) {
|
||||
addStyleProd(styles, list)
|
||||
} else {
|
||||
addStyleDev(styles, list)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// In production, render as few style tags as possible.
|
||||
// (mostly because IE9 has a limit on number of style tags)
|
||||
function addStyleProd (styles, list) {
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
var parts = list[i].parts
|
||||
for (var j = 0; j < parts.length; j++) {
|
||||
var part = parts[j]
|
||||
// group style tags by media types.
|
||||
var id = part.media || 'default'
|
||||
var style = styles[id]
|
||||
if (style) {
|
||||
if (style.ids.indexOf(part.id) < 0) {
|
||||
style.ids.push(part.id)
|
||||
style.css += '\n' + part.css
|
||||
}
|
||||
} else {
|
||||
styles[id] = {
|
||||
ids: [part.id],
|
||||
css: part.css,
|
||||
media: part.media
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// In dev we use individual style tag for each module for hot-reload
|
||||
// and source maps.
|
||||
function addStyleDev (styles, list) {
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
var parts = list[i].parts
|
||||
for (var j = 0; j < parts.length; j++) {
|
||||
var part = parts[j]
|
||||
styles[part.id] = {
|
||||
ids: [part.id],
|
||||
css: part.css,
|
||||
media: part.media
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function renderStyles (styles) {
|
||||
var css = ''
|
||||
for (var key in styles) {
|
||||
var style = styles[key]
|
||||
css += '<style data-vue-ssr-id="' + style.ids.join(' ') + '"' +
|
||||
(style.media ? ( ' media="' + style.media + '"' ) : '') + '>' +
|
||||
style.css + '</style>'
|
||||
}
|
||||
return css
|
||||
}
|
Reference in New Issue
Block a user