File tree Expand file tree Collapse file tree 2 files changed +28
-1
lines changed Expand file tree Collapse file tree 2 files changed +28
-1
lines changed Original file line number Diff line number Diff line change 4
4
const postcss = require ( 'postcss' ) ;
5
5
const selectorParser = require ( 'postcss-selector-parser' ) ;
6
6
const replaceTagSelector = require ( './lib/wxmlTagMap' ) ;
7
+ const { isRegExp } = require ( './lib/utils' ) ;
7
8
8
9
const defConfig = {
9
10
cleanSelector : [ '*' ] ,
11
+ cleanAtRule : [ {
12
+ name : 'media' ,
13
+ params : [ 'print' ]
14
+ } ] ,
10
15
remToRpx : 100 ,
11
16
replaceTagSelector
12
17
} ;
@@ -20,6 +25,23 @@ module.exports = postcss.plugin('postcss-mpvue-wxss', function (options) {
20
25
21
26
return function ( root ) {
22
27
// Transform CSS AST here: root, result
28
+ root . walkAtRules ( rule => {
29
+ // 清理不支持的@开头规则
30
+ for ( cleanRule of options . cleanAtRule ) {
31
+ if ( cleanRule . name !== rule . name ) {
32
+ continue ;
33
+ }
34
+ if ( ! cleanRule . params ) {
35
+ return rule . remove ( ) ;
36
+ }
37
+ for ( param of cleanRule . params ) {
38
+ if ( isRegExp ( param ) && param . test ( rule . params ) || param === rule . params ) {
39
+ return rule . remove ( ) ;
40
+ }
41
+ }
42
+ }
43
+ } ) ;
44
+
23
45
root . walkRules ( rule => {
24
46
const { selector } = rule || { } ;
25
47
@@ -43,7 +65,7 @@ module.exports = postcss.plugin('postcss-mpvue-wxss', function (options) {
43
65
// 清理不支持的选择器
44
66
if ( options . cleanSelector . includes ( n . value ) ) {
45
67
// return n.value = 'view';
46
- return rule . remove ( )
68
+ return rule . remove ( ) ;
47
69
}
48
70
} )
49
71
} )
Original file line number Diff line number Diff line change
1
+ module . exports = {
2
+ isRegExp : function ( arg ) {
3
+ return Object . prototype . toString . call ( arg ) === '[object RegExp]' ;
4
+ }
5
+ }
You can’t perform that action at this time.
0 commit comments