Skip to content

Commit bfacd61

Browse files
committed
split built-in postcss plugins
1 parent 3597f6d commit bfacd61

File tree

3 files changed

+41
-36
lines changed

3 files changed

+41
-36
lines changed

lib/style-compiler/index.js

Lines changed: 3 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,9 @@
11
var postcss = require('postcss')
22
var loaderUtils = require('loader-utils')
3-
var selectorParser = require('postcss-selector-parser')
43
var loadPostcssConfig = require('./load-postcss-config')
54

6-
var addId = postcss.plugin('add-id', function (opts) {
7-
return function (root) {
8-
root.each(function rewriteSelector (node) {
9-
if (!node.selector) {
10-
// handle media queries
11-
if (node.type === 'atrule' && node.name === 'media') {
12-
node.each(rewriteSelector)
13-
}
14-
return
15-
}
16-
node.selector = selectorParser(function (selectors) {
17-
selectors.each(function (selector) {
18-
var node = null
19-
selector.each(function (n) {
20-
if (n.type !== 'pseudo') node = n
21-
})
22-
selector.insertAfter(node, selectorParser.attribute({
23-
attribute: opts.id
24-
}))
25-
})
26-
}).process(node.selector).result
27-
})
28-
}
29-
})
30-
31-
var trim = postcss.plugin('trim', function (opts) {
32-
return function (css) {
33-
css.walk(function (node) {
34-
if (node.type === 'rule' || node.type === 'atrule') {
35-
node.raws.before = node.raws.after = '\n'
36-
}
37-
})
38-
}
39-
})
5+
var trim = require('./plugins/trim')
6+
var scopeId = require('./plugins/scope-id')
407

418
module.exports = function (css, map) {
429
this.cacheable()
@@ -69,7 +36,7 @@ module.exports = function (css, map) {
6936

7037
// add plugin for vue-loader scoped css rewrite
7138
if (query.scoped) {
72-
plugins.push(addId({ id: query.id }))
39+
plugins.push(scopeId({ id: query.id }))
7340
}
7441

7542
// source map
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
var postcss = require('postcss')
2+
var selectorParser = require('postcss-selector-parser')
3+
4+
module.exports = postcss.plugin('add-id', function (opts) {
5+
return function (root) {
6+
root.each(function rewriteSelector (node) {
7+
if (!node.selector) {
8+
// handle media queries
9+
if (node.type === 'atrule' && node.name === 'media') {
10+
node.each(rewriteSelector)
11+
}
12+
return
13+
}
14+
node.selector = selectorParser(function (selectors) {
15+
selectors.each(function (selector) {
16+
var node = null
17+
selector.each(function (n) {
18+
if (n.type !== 'pseudo') node = n
19+
})
20+
selector.insertAfter(node, selectorParser.attribute({
21+
attribute: opts.id
22+
}))
23+
})
24+
}).process(node.selector).result
25+
})
26+
}
27+
})

lib/style-compiler/plugins/trim.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
var postcss = require('postcss')
2+
3+
module.exports = postcss.plugin('trim', function (opts) {
4+
return function (css) {
5+
css.walk(function (node) {
6+
if (node.type === 'rule' || node.type === 'atrule') {
7+
node.raws.before = node.raws.after = '\n'
8+
}
9+
})
10+
}
11+
})

0 commit comments

Comments
 (0)