@@ -9,7 +9,7 @@ const cacheLocalRuleInfo = {}
9
9
const parserPlugin = postcss . plugin ( 'postcss-flat' , ( options ) => {
10
10
const {
11
11
locals = { } ,
12
- prefix = '' ,
12
+ prefix = 'a ' ,
13
13
atRulesConfig,
14
14
htmlClass = 'css-flat' ,
15
15
pseudoMap,
@@ -20,12 +20,12 @@ const parserPlugin = postcss.plugin('postcss-flat', (options) => {
20
20
} = options
21
21
const genMap = sourceMap && inputMap
22
22
const localsMap = _ . invert ( locals )
23
- const localRuleMark = { normal : { } }
23
+ const localRuleMark = { }
24
24
return ( css ) => {
25
25
const exports = { }
26
26
// const globalRule = []
27
27
css . walkRules ( ( rule ) => {
28
- let parentParams = ''
28
+ let parentParams = 'normal '
29
29
let parentName = ''
30
30
if ( rule . parent . type === 'atrule' ) {
31
31
parentName = rule . parent . name
@@ -47,7 +47,7 @@ const parserPlugin = postcss.plugin('postcss-flat', (options) => {
47
47
} else if ( isClassSelector ) {
48
48
const className = sel . replace ( / \. | / g, '' ) . replace ( selectorHalf , '' )
49
49
rule . walkDecls ( function ( decl ) {
50
- const prop = decl . prop
50
+ const prop = decl . prop . replace ( '--sourceMap-' , '' )
51
51
const value = decl . value
52
52
const newClassName = getSelectorName ( decl , {
53
53
parentName,
@@ -74,14 +74,11 @@ const parserPlugin = postcss.plugin('postcss-flat', (options) => {
74
74
newClassName,
75
75
selectorHalf, // 伪类后缀
76
76
priority : priority + ' ' ,
77
+ parentParams,
77
78
}
78
79
}
79
- if ( parentParams ) {
80
- localRuleMark [ parentParams ] = localRuleMark [ parentParams ] || { }
81
- localRuleMark [ parentParams ] [ newClassName ] = cacheLocalRuleInfo [ newClassName ]
82
- } else {
83
- localRuleMark . normal [ newClassName ] = cacheLocalRuleInfo [ newClassName ]
84
- }
80
+ localRuleMark [ parentParams ] = localRuleMark [ parentParams ] || { }
81
+ localRuleMark [ parentParams ] [ newClassName ] = cacheLocalRuleInfo [ newClassName ]
85
82
86
83
const localsKey = localsMap [ className ]
87
84
exports [ localsKey ] = ( exports [ localsKey ] || ( genMap ? className : '' ) ) + ' ' + newClassName
@@ -109,7 +106,8 @@ const parserPlugin = postcss.plugin('postcss-flat', (options) => {
109
106
110
107
for ( let newClassName in localRuleMark . normal ) {
111
108
const { selectorHalf = '' , priority, prop, value } = cacheLocalRuleInfo [ newClassName ]
112
- css . append ( priority + '.' + newClassName + selectorHalf + '{' + prop + ':' + value + '}' )
109
+ const newSelector = priority + '.' + newClassName + selectorHalf
110
+ css . append ( newSelector + '{' + prop + ':' + value + '}' )
113
111
}
114
112
options . exports = exports
115
113
}
0 commit comments