@tarojs/rn-style-transformer 3.3.7 → 3.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/config.spec.js +1 -1
- package/__tests__/index.spec.js +1 -1
- package/__tests__/platform.spec.js +1 -1
- package/dist/transforms/index.js +71 -44
- package/dist/transforms/index.js.map +1 -1
- package/dist/transforms/less.js +9 -12
- package/dist/transforms/less.js.map +1 -1
- package/dist/transforms/postcss.js +7 -6
- package/dist/transforms/postcss.js.map +1 -1
- package/dist/transforms/sass.js +15 -23
- package/dist/transforms/sass.js.map +1 -1
- package/dist/transforms/stylus.js +14 -11
- package/dist/transforms/stylus.js.map +1 -1
- package/dist/types/index.js +0 -6
- package/dist/types/index.js.map +1 -1
- package/dist/utils/index.js +77 -15
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/lessImport.js +1 -2
- package/dist/utils/lessImport.js.map +1 -1
- package/dist/utils/reporterSkip.js +23 -0
- package/dist/utils/reporterSkip.js.map +1 -0
- package/jest.config.js +3 -2
- package/package.json +9 -8
- package/src/transforms/index.ts +113 -41
- package/src/transforms/less.ts +25 -15
- package/src/transforms/postcss.ts +10 -5
- package/src/transforms/sass.ts +35 -27
- package/src/transforms/stylus.ts +26 -14
- package/src/types/index.ts +10 -1
- package/src/utils/index.ts +89 -10
- package/src/utils/reporterSkip.ts +24 -0
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
|
package/dist/utils/index.js
CHANGED
|
@@ -3,35 +3,34 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.resolveStyle = exports.findVariant = exports.insertAfter = exports.insertBefore = void 0;
|
|
6
|
+
exports.getAdditionalData = exports.normalizeSourceMap = exports.normalizePath = exports.resolveStyle = exports.findVariant = exports.insertAfter = exports.insertBefore = void 0;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const helper_1 = require("@tarojs/helper");
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (!source && !target) {
|
|
10
|
+
function insertBefore(source, additional) {
|
|
11
|
+
if (!source && !additional) {
|
|
13
12
|
return '';
|
|
14
13
|
}
|
|
15
14
|
if (!source) {
|
|
16
|
-
return
|
|
15
|
+
return additional;
|
|
17
16
|
}
|
|
18
|
-
if (!
|
|
17
|
+
if (!additional) {
|
|
19
18
|
return source;
|
|
20
19
|
}
|
|
21
|
-
return
|
|
20
|
+
return additional + ';\n' + source;
|
|
22
21
|
}
|
|
23
22
|
exports.insertBefore = insertBefore;
|
|
24
|
-
function insertAfter(source,
|
|
25
|
-
if (!source && !
|
|
23
|
+
function insertAfter(source, additional) {
|
|
24
|
+
if (!source && !additional) {
|
|
26
25
|
return '';
|
|
27
26
|
}
|
|
28
27
|
if (!source) {
|
|
29
|
-
return
|
|
28
|
+
return additional;
|
|
30
29
|
}
|
|
31
|
-
if (!
|
|
30
|
+
if (!additional) {
|
|
32
31
|
return source;
|
|
33
32
|
}
|
|
34
|
-
return source + ';\n' +
|
|
33
|
+
return source + ';\n' + additional;
|
|
35
34
|
}
|
|
36
35
|
exports.insertAfter = insertAfter;
|
|
37
36
|
// Iterate through the include paths and extensions to find the file variant
|
|
@@ -56,7 +55,7 @@ exports.findVariant = findVariant;
|
|
|
56
55
|
* @param opts { basedir, platform, paths }
|
|
57
56
|
*/
|
|
58
57
|
function resolveStyle(id, opts) {
|
|
59
|
-
const { basedir, platform, paths = [], alias = {}, defaultExt = '', logLevel =
|
|
58
|
+
const { basedir, platform, paths = [], alias = {}, defaultExt = '', logLevel = "error" /* ERROR */ } = opts;
|
|
60
59
|
Object.keys(alias).forEach(key => {
|
|
61
60
|
if (id.startsWith(key)) {
|
|
62
61
|
id = id.replace(key, alias[key]);
|
|
@@ -79,10 +78,10 @@ function resolveStyle(id, opts) {
|
|
|
79
78
|
${incPaths.join(',\n ')}
|
|
80
79
|
]
|
|
81
80
|
`;
|
|
82
|
-
if (logLevel ===
|
|
81
|
+
if (logLevel === "error" /* ERROR */) {
|
|
83
82
|
throw new Error(levelMessage);
|
|
84
83
|
}
|
|
85
|
-
if (logLevel ===
|
|
84
|
+
if (logLevel === "warning" /* WARNING */) {
|
|
86
85
|
helper_1.printLog("warning" /* WARNING */, levelMessage);
|
|
87
86
|
return id;
|
|
88
87
|
}
|
|
@@ -90,5 +89,68 @@ function resolveStyle(id, opts) {
|
|
|
90
89
|
return file;
|
|
91
90
|
}
|
|
92
91
|
exports.resolveStyle = resolveStyle;
|
|
92
|
+
// copy from https://github.com/webpack-contrib/css-loader/blob/master/src/utils.js
|
|
93
|
+
const IS_NATIVE_WIN32_PATH = /^[a-z]:[/\\]|^\\\\/i;
|
|
94
|
+
const ABSOLUTE_SCHEME = /^[a-z0-9+\-.]+:/i;
|
|
95
|
+
function normalizePath(file) {
|
|
96
|
+
return path_1.default.sep === '\\' ? file.replace(/\\/g, '/') : file;
|
|
97
|
+
}
|
|
98
|
+
exports.normalizePath = normalizePath;
|
|
99
|
+
function getURLType(source) {
|
|
100
|
+
if (source[0] === '/') {
|
|
101
|
+
if (source[1] === '/') {
|
|
102
|
+
return 'scheme-relative';
|
|
103
|
+
}
|
|
104
|
+
return 'path-absolute';
|
|
105
|
+
}
|
|
106
|
+
if (IS_NATIVE_WIN32_PATH.test(source)) {
|
|
107
|
+
return 'path-absolute';
|
|
108
|
+
}
|
|
109
|
+
return ABSOLUTE_SCHEME.test(source) ? 'absolute' : 'path-relative';
|
|
110
|
+
}
|
|
111
|
+
function normalizeSourceMap(map, resourcePath) {
|
|
112
|
+
let newMap = map;
|
|
113
|
+
// Some loader emit source map as string
|
|
114
|
+
// Strip any JSON XSSI avoidance prefix from the string (as documented in the source maps specification), and then parse the string as JSON.
|
|
115
|
+
if (typeof newMap === 'string') {
|
|
116
|
+
newMap = JSON.parse(newMap);
|
|
117
|
+
}
|
|
118
|
+
delete newMap.file;
|
|
119
|
+
const { sourceRoot } = newMap;
|
|
120
|
+
delete newMap.sourceRoot;
|
|
121
|
+
if (newMap.sources) {
|
|
122
|
+
// Source maps should use forward slash because it is URLs (https://github.com/mozilla/source-map/issues/91)
|
|
123
|
+
// We should normalize path because previous loaders like `sass-loader` using backslash when generate source map
|
|
124
|
+
newMap.sources = newMap.sources.map((source) => {
|
|
125
|
+
// Non-standard syntax from `postcss`
|
|
126
|
+
if (source.indexOf('<') === 0) {
|
|
127
|
+
return source;
|
|
128
|
+
}
|
|
129
|
+
const sourceType = getURLType(source);
|
|
130
|
+
// Do no touch `scheme-relative` and `absolute` URLs
|
|
131
|
+
if (sourceType === 'path-relative' || sourceType === 'path-absolute') {
|
|
132
|
+
const absoluteSource = sourceType === 'path-relative' && sourceRoot
|
|
133
|
+
? path_1.default.resolve(sourceRoot, normalizePath(source))
|
|
134
|
+
: normalizePath(source);
|
|
135
|
+
return path_1.default.relative(path_1.default.dirname(resourcePath), absoluteSource);
|
|
136
|
+
}
|
|
137
|
+
return source;
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
return newMap;
|
|
141
|
+
}
|
|
142
|
+
exports.normalizeSourceMap = normalizeSourceMap;
|
|
143
|
+
// copy end
|
|
144
|
+
function getAdditionalData(data, config) {
|
|
145
|
+
let additionalData = '';
|
|
146
|
+
if (typeof config !== 'undefined') {
|
|
147
|
+
additionalData =
|
|
148
|
+
typeof config === 'function'
|
|
149
|
+
? `${config(data)}`
|
|
150
|
+
: config;
|
|
151
|
+
}
|
|
152
|
+
return additionalData;
|
|
153
|
+
}
|
|
154
|
+
exports.getAdditionalData = getAdditionalData;
|
|
93
155
|
exports.default = {};
|
|
94
156
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AACnB,gDAAuB;AACvB,2CAA0D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/lessImport.js
CHANGED
|
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const path_1 = __importDefault(require("path"));
|
|
7
7
|
const index_1 = require("./index");
|
|
8
|
-
const types_1 = require("../types");
|
|
9
8
|
class Importer {
|
|
10
9
|
constructor(opt) {
|
|
11
10
|
this.alias = {};
|
|
@@ -22,7 +21,7 @@ class Importer {
|
|
|
22
21
|
basedir,
|
|
23
22
|
alias: this.alias,
|
|
24
23
|
platform: this.platform,
|
|
25
|
-
logLevel:
|
|
24
|
+
logLevel: "warning" /* WARNING */,
|
|
26
25
|
defaultExt: path_1.default.extname(filename)
|
|
27
26
|
};
|
|
28
27
|
// 解析 @import "a.less" 字符串里面的内容
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lessImport.js","sourceRoot":"","sources":["../../src/utils/lessImport.ts"],"names":[],"mappings":";;;;;AAAA,gDAAuB;AACvB,mCAAsC;
|
|
1
|
+
{"version":3,"file":"lessImport.js","sourceRoot":"","sources":["../../src/utils/lessImport.ts"],"names":[],"mappings":";;;;;AAAA,gDAAuB;AACvB,mCAAsC;AAGtC,MAAM,QAAQ;IACZ,YAAa,GAAG;QAOhB,UAAK,GAA2B,EAAE,CAAA;QANhC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;IACxB,CAAC;IAMD,OAAO,CAAE,GAAW,EAAE,OAAmC;QACvD,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;QAC5B,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAA;QAExD,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,GAAG,CAAA;SACX;QAED,MAAM,WAAW,GAAG;YAClB,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,yBAAsB;YAC9B,UAAU,EAAE,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;SACnC,CAAA;QAED,+BAA+B;QAC/B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,+BAA+B,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;YAC3D,MAAM,YAAY,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAY,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YACrG,OAAO,YAAY,YAAY,IAAI,CAAA;QACrC,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAED,SAAS,cAAc,CAAE,OAAO;IAC9B,OAAO;QACL,OAAO,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE;YAC5B,aAAa,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;QACtD,CAAC;QACD,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACtB,CAAA;AACH,CAAC;AAED,kBAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function reporterSkip({ skipRows, filename }) {
|
|
4
|
+
// @ts-ignore
|
|
5
|
+
return (css, result) => {
|
|
6
|
+
var _a;
|
|
7
|
+
(_a = result.messages) === null || _a === void 0 ? void 0 : _a.forEach((message) => {
|
|
8
|
+
var _a;
|
|
9
|
+
const { line, column, node } = message;
|
|
10
|
+
const messageInput = (_a = node === null || node === void 0 ? void 0 : node.source) === null || _a === void 0 ? void 0 : _a.input;
|
|
11
|
+
if (messageInput) {
|
|
12
|
+
const originLocation = messageInput.origin(line, column);
|
|
13
|
+
// 如果是原始引入的样式文件,则对拼接的代码(addionalData)函数做减法
|
|
14
|
+
if (originLocation && originLocation.file.includes(filename)) {
|
|
15
|
+
// force modify line,then source map cannot read origin column, value is 0.
|
|
16
|
+
message.line -= skipRows;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
exports.default = reporterSkip;
|
|
23
|
+
//# sourceMappingURL=reporterSkip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporterSkip.js","sourceRoot":"","sources":["../../src/utils/reporterSkip.ts"],"names":[],"mappings":";;AAMA,SAAwB,YAAY,CAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAC1D,aAAa;IACb,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;;QACrB,MAAA,MAAM,CAAC,QAAQ,0CAAE,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;;YACxC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;YAEtC,MAAM,YAAY,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,0CAAE,KAAK,CAAA;YACxC,IAAI,YAAY,EAAE;gBAChB,MAAM,cAAc,GAAa,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;gBAClE,0CAA0C;gBAC1C,IAAI,cAAc,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;oBAC5D,2EAA2E;oBAC3E,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAA;iBACzB;aACF;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC;AAjBD,+BAiBC"}
|
package/jest.config.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tarojs/rn-style-transformer",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.8",
|
|
4
4
|
"description": "提供Taro RN 统一处理样式文件能力",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -23,24 +23,25 @@
|
|
|
23
23
|
"npm": ">=6.0.0"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@tarojs/helper": "3.3.
|
|
26
|
+
"@tarojs/helper": "3.3.8",
|
|
27
27
|
"fbjs": "^2.0.0",
|
|
28
28
|
"less": "^3.12.2",
|
|
29
29
|
"postcss": "^7.0.35",
|
|
30
30
|
"postcss-import": "^12.0.1",
|
|
31
|
-
"postcss-pxtransform": "3.3.
|
|
31
|
+
"postcss-pxtransform": "3.3.8",
|
|
32
32
|
"postcss-reporter": "^6.0.1",
|
|
33
33
|
"prop-types": "^15.7.2",
|
|
34
34
|
"sass": "^1.34.1",
|
|
35
35
|
"stylelint": "^13.8.0",
|
|
36
|
-
"stylelint-config-taro-rn": "3.3.
|
|
37
|
-
"stylelint-taro-rn": "3.3.
|
|
36
|
+
"stylelint-config-taro-rn": "3.3.8",
|
|
37
|
+
"stylelint-taro-rn": "3.3.8",
|
|
38
38
|
"stylus": "^0.54.8",
|
|
39
|
-
"taro-css-to-react-native": "3.3.
|
|
39
|
+
"taro-css-to-react-native": "3.3.8"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@types/less": "^3.0.2",
|
|
43
|
-
"@types/postcss-import": "^12.0.0"
|
|
43
|
+
"@types/postcss-import": "^12.0.0",
|
|
44
|
+
"@types/sass": "^1.16.1"
|
|
44
45
|
},
|
|
45
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "51a672907177558f20d664e7c196fdb0bff41c75"
|
|
46
47
|
}
|
package/src/transforms/index.ts
CHANGED
|
@@ -2,12 +2,13 @@ import path from 'path'
|
|
|
2
2
|
import transformCSS from 'taro-css-to-react-native'
|
|
3
3
|
import { recursiveMerge, printLog, processTypeEnum } from '@tarojs/helper'
|
|
4
4
|
|
|
5
|
-
import postcssTransform, { Config as PostcssConfig,
|
|
6
|
-
import sassTransform, { Config as SassConfig,
|
|
5
|
+
import postcssTransform, { Config as PostcssConfig, makePostcssPlugins } from './postcss'
|
|
6
|
+
import sassTransform, { Config as SassConfig, SassGlobalConfig } from './sass'
|
|
7
7
|
import lessTransform, { Config as LessConfig } from './less'
|
|
8
8
|
import stylusTransform, { Config as StylusConfig, defaultOptions as stylusDefaultOptions } from './stylus'
|
|
9
9
|
import { StyleSheetValidation } from './StyleSheet'
|
|
10
|
-
import { TransformOptions } from '../types'
|
|
10
|
+
import { TransformOptions, RenderAdditionalResult } from '../types'
|
|
11
|
+
import { normalizeSourceMap } from '../utils'
|
|
11
12
|
|
|
12
13
|
export function getWrapedCSS (css) {
|
|
13
14
|
return `
|
|
@@ -38,7 +39,7 @@ function validateStyle ({ styleObject, filename }) {
|
|
|
38
39
|
} catch (err) {
|
|
39
40
|
// 先忽略掉 scalePx2dp 的报错
|
|
40
41
|
if (/Invalid prop `.*` of type `string` supplied to `.*`, expected `number`[^]*/g.test(err.message)) return
|
|
41
|
-
printLog(processTypeEnum.WARNING, err.message, filename)
|
|
42
|
+
printLog(processTypeEnum.WARNING, err.message, `entry file: ${filename}`)
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
}
|
|
@@ -53,11 +54,20 @@ interface RNConfig {
|
|
|
53
54
|
interface Config {
|
|
54
55
|
designWidth: number;
|
|
55
56
|
deviceRatio: { [key: number]: number };
|
|
56
|
-
sass:
|
|
57
|
+
sass: SassGlobalConfig;
|
|
57
58
|
alias: Record<string, string>;
|
|
58
59
|
rn: RNConfig;
|
|
59
60
|
}
|
|
60
61
|
|
|
62
|
+
interface PostcssParam {
|
|
63
|
+
css: string
|
|
64
|
+
map: any
|
|
65
|
+
filename: string
|
|
66
|
+
additionalData: string
|
|
67
|
+
postcssConfig: PostcssConfig
|
|
68
|
+
transformOptions: TransformOptions
|
|
69
|
+
}
|
|
70
|
+
|
|
61
71
|
const designWidth = 750
|
|
62
72
|
|
|
63
73
|
const deviceRatio = {
|
|
@@ -66,7 +76,7 @@ const deviceRatio = {
|
|
|
66
76
|
828: 1.81 / 2
|
|
67
77
|
}
|
|
68
78
|
|
|
69
|
-
enum
|
|
79
|
+
const enum ProcessTypes {
|
|
70
80
|
POSTCSS = 'postcss',
|
|
71
81
|
SASS = 'sass',
|
|
72
82
|
LESS = 'less',
|
|
@@ -74,17 +84,17 @@ enum StyleTypes {
|
|
|
74
84
|
}
|
|
75
85
|
|
|
76
86
|
const DEFAULT_RN_CONFIG = {
|
|
77
|
-
[
|
|
87
|
+
[ProcessTypes.POSTCSS]: {
|
|
78
88
|
options: {},
|
|
79
89
|
scalable: true
|
|
80
90
|
},
|
|
81
|
-
[
|
|
91
|
+
[ProcessTypes.SASS]: {
|
|
82
92
|
options: {}
|
|
83
93
|
},
|
|
84
|
-
[
|
|
94
|
+
[ProcessTypes.LESS]: {
|
|
85
95
|
options: {}
|
|
86
96
|
},
|
|
87
|
-
[
|
|
97
|
+
[ProcessTypes.STYLUS]: {
|
|
88
98
|
options: stylusDefaultOptions
|
|
89
99
|
}
|
|
90
100
|
}
|
|
@@ -92,7 +102,7 @@ const DEFAULT_RN_CONFIG = {
|
|
|
92
102
|
export default class StyleTransform {
|
|
93
103
|
config: Config
|
|
94
104
|
|
|
95
|
-
|
|
105
|
+
processConfigMap = new Map()
|
|
96
106
|
|
|
97
107
|
constructor (config = {}) {
|
|
98
108
|
this.init(config)
|
|
@@ -106,7 +116,26 @@ export default class StyleTransform {
|
|
|
106
116
|
alias: config.alias ?? {},
|
|
107
117
|
rn: recursiveMerge({}, DEFAULT_RN_CONFIG, config.rn)
|
|
108
118
|
}
|
|
109
|
-
|
|
119
|
+
|
|
120
|
+
Reflect.ownKeys(this.config.rn).forEach((key: string) => {
|
|
121
|
+
if (
|
|
122
|
+
[
|
|
123
|
+
ProcessTypes.SASS,
|
|
124
|
+
ProcessTypes.LESS,
|
|
125
|
+
ProcessTypes.STYLUS,
|
|
126
|
+
ProcessTypes.POSTCSS
|
|
127
|
+
].includes(key.toLocaleLowerCase() as any)
|
|
128
|
+
) {
|
|
129
|
+
const processConfig = {
|
|
130
|
+
...this.config.rn[key],
|
|
131
|
+
alias: config.alias ?? {}
|
|
132
|
+
}
|
|
133
|
+
if (key.toLocaleLowerCase() === ProcessTypes.SASS) {
|
|
134
|
+
processConfig.sass = this.config.sass
|
|
135
|
+
}
|
|
136
|
+
this.processConfigMap.set(key, processConfig)
|
|
137
|
+
}
|
|
138
|
+
})
|
|
110
139
|
}
|
|
111
140
|
|
|
112
141
|
/**
|
|
@@ -116,43 +145,78 @@ export default class StyleTransform {
|
|
|
116
145
|
* @param {object} options
|
|
117
146
|
*/
|
|
118
147
|
async processStyle (src: string, filename: string, options: TransformOptions) {
|
|
148
|
+
let result: undefined | RenderAdditionalResult
|
|
119
149
|
let css = src
|
|
150
|
+
let map: undefined | string
|
|
151
|
+
let additionalData = ''
|
|
120
152
|
const ext = path.extname(filename)
|
|
121
|
-
if (ext
|
|
122
|
-
|
|
123
|
-
} else if (
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
153
|
+
if (/.less$/i.test(ext)) {
|
|
154
|
+
result = await lessTransform(src, filename, this.processConfigMap.get(ProcessTypes.LESS))
|
|
155
|
+
} else if (/.s(c|a)ss$/i.test(ext)) {
|
|
156
|
+
result = await sassTransform(src, filename, this.processConfigMap.get(ProcessTypes.SASS), options)
|
|
157
|
+
} else if (/.styl(us)?$/i.test(ext)) {
|
|
158
|
+
result = await stylusTransform(src, filename, this.processConfigMap.get(ProcessTypes.STYLUS))
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (result) {
|
|
162
|
+
css = Buffer.isBuffer(result.css) ? result.css.toString() : result.css
|
|
163
|
+
map = Buffer.isBuffer(result.map) ? result.map.toString() : result.map
|
|
164
|
+
additionalData = result.additionalData
|
|
128
165
|
}
|
|
129
166
|
|
|
130
167
|
// postcss 插件,比如处理平台特有样式,单位转换
|
|
131
|
-
|
|
132
|
-
|
|
168
|
+
return await this.postCSS({
|
|
169
|
+
css,
|
|
170
|
+
map,
|
|
171
|
+
filename,
|
|
172
|
+
additionalData,
|
|
173
|
+
transformOptions: options,
|
|
174
|
+
postcssConfig: this.processConfigMap.get(ProcessTypes.POSTCSS)
|
|
175
|
+
})
|
|
133
176
|
}
|
|
134
177
|
|
|
135
178
|
/**
|
|
136
|
-
*
|
|
137
|
-
* @param
|
|
138
|
-
* @
|
|
139
|
-
* @returns {Function | any}
|
|
179
|
+
* postcss处理
|
|
180
|
+
* @param param0 PostcssParam
|
|
181
|
+
* @returns {Promise | any}
|
|
140
182
|
*/
|
|
141
|
-
postCSS (
|
|
142
|
-
|
|
183
|
+
postCSS ({
|
|
184
|
+
css,
|
|
185
|
+
map,
|
|
186
|
+
filename,
|
|
187
|
+
postcssConfig,
|
|
188
|
+
transformOptions,
|
|
189
|
+
additionalData
|
|
190
|
+
}: PostcssParam) {
|
|
191
|
+
const plugins = makePostcssPlugins({
|
|
192
|
+
filename,
|
|
193
|
+
postcssConfig,
|
|
194
|
+
transformOptions,
|
|
143
195
|
designWidth: this.config.designWidth,
|
|
144
196
|
deviceRatio: this.config.deviceRatio,
|
|
145
|
-
|
|
146
|
-
transformOptions
|
|
197
|
+
additionalData: additionalData
|
|
147
198
|
})
|
|
148
199
|
|
|
149
|
-
return postcssTransform(
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
200
|
+
return postcssTransform(
|
|
201
|
+
css,
|
|
202
|
+
filename,
|
|
203
|
+
{
|
|
204
|
+
plugins,
|
|
205
|
+
options: {
|
|
206
|
+
...postcssConfig.options,
|
|
207
|
+
map: map && {
|
|
208
|
+
prev: normalizeSourceMap(map, filename),
|
|
209
|
+
inline: false,
|
|
210
|
+
annotation: false
|
|
211
|
+
}
|
|
154
212
|
}
|
|
155
|
-
}
|
|
213
|
+
}
|
|
214
|
+
).then(result => {
|
|
215
|
+
return {
|
|
216
|
+
...result,
|
|
217
|
+
filename
|
|
218
|
+
}
|
|
219
|
+
})
|
|
156
220
|
}
|
|
157
221
|
|
|
158
222
|
/**
|
|
@@ -163,15 +227,23 @@ export default class StyleTransform {
|
|
|
163
227
|
* @return {string} JSONString
|
|
164
228
|
*/
|
|
165
229
|
async transform (src: string, filename: string, options = {} as TransformOptions) {
|
|
166
|
-
printLog(processTypeEnum.START, '样式文件处理开始', filename)
|
|
167
|
-
const
|
|
168
|
-
|
|
230
|
+
// printLog(processTypeEnum.START, '样式文件处理开始', filename)
|
|
231
|
+
const result = await this.processStyle(src, filename, options)
|
|
232
|
+
|
|
169
233
|
// 把 css 转换成对象 rn 的样式,接入 taro 的 css-to-react-native,比如有单位的处理
|
|
170
|
-
const styleObject = transformCSS(
|
|
234
|
+
const styleObject = transformCSS(
|
|
235
|
+
result.css,
|
|
236
|
+
{
|
|
237
|
+
parseMediaQueries: true,
|
|
238
|
+
scalable: this.config.rn.postcss.scalable
|
|
239
|
+
}
|
|
240
|
+
)
|
|
241
|
+
|
|
171
242
|
// stylelint,转换成对象,对对象进行校验
|
|
172
243
|
validateStyle({ styleObject, filename })
|
|
173
|
-
const css = JSON.stringify(styleObject, null, 2)
|
|
174
|
-
|
|
244
|
+
const css = JSON.stringify(styleObject, null, 2)
|
|
245
|
+
.replace(/"(scalePx2dp\(.*?\))"/g, '$1')
|
|
246
|
+
|
|
175
247
|
// 注入自适应方法 scalePx2dp
|
|
176
248
|
return getWrapedCSS(css)
|
|
177
249
|
}
|