@tarojs/rn-style-transformer 3.3.4 → 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.
@@ -1,7 +1,7 @@
1
1
  import path from 'path'
2
2
  import { recursiveMerge } from '@tarojs/helper'
3
3
 
4
- import StyleTransform, { getWrapedCSS } from '../dist/transforms'
4
+ import StyleTransform, { getWrapedCSS } from '../src/transforms'
5
5
 
6
6
  const defaultConfig = {
7
7
  designWidth: 750,
@@ -1,4 +1,4 @@
1
- import StyleTransform, { getWrapedCSS } from '../dist/transforms'
1
+ import StyleTransform, { getWrapedCSS } from '../src/transforms'
2
2
 
3
3
  // 初始化
4
4
  const styleTransform = new StyleTransform()
@@ -1,4 +1,4 @@
1
- import StyleTransform, { getWrapedCSS } from '../dist/transforms'
1
+ import StyleTransform, { getWrapedCSS } from '../src/transforms'
2
2
 
3
3
  // 初始化config
4
4
  const styleTransform = new StyleTransform()
@@ -27,10 +27,11 @@ const path_1 = __importDefault(require("path"));
27
27
  const taro_css_to_react_native_1 = __importDefault(require("taro-css-to-react-native"));
28
28
  const helper_1 = require("@tarojs/helper");
29
29
  const postcss_1 = __importStar(require("./postcss"));
30
- const sass_1 = __importStar(require("./sass"));
30
+ const sass_1 = __importDefault(require("./sass"));
31
31
  const less_1 = __importDefault(require("./less"));
32
32
  const stylus_1 = __importStar(require("./stylus"));
33
33
  const StyleSheet_1 = require("./StyleSheet");
34
+ const utils_1 = require("../utils");
34
35
  function getWrapedCSS(css) {
35
36
  return `
36
37
  import { StyleSheet, Dimensions } from 'react-native'
@@ -62,7 +63,7 @@ function validateStyle({ styleObject, filename }) {
62
63
  // 先忽略掉 scalePx2dp 的报错
63
64
  if (/Invalid prop `.*` of type `string` supplied to `.*`, expected `number`[^]*/g.test(err.message))
64
65
  return;
65
- helper_1.printLog("warning" /* WARNING */, err.message, filename);
66
+ helper_1.printLog("warning" /* WARNING */, err.message, `entry file: ${filename}`);
66
67
  }
67
68
  }
68
69
  }
@@ -72,31 +73,24 @@ const deviceRatio = {
72
73
  750: 1,
73
74
  828: 1.81 / 2
74
75
  };
75
- var StyleTypes;
76
- (function (StyleTypes) {
77
- StyleTypes["POSTCSS"] = "postcss";
78
- StyleTypes["SASS"] = "sass";
79
- StyleTypes["LESS"] = "less";
80
- StyleTypes["STYLUS"] = "stylus";
81
- })(StyleTypes || (StyleTypes = {}));
82
76
  const DEFAULT_RN_CONFIG = {
83
- [StyleTypes.POSTCSS]: {
77
+ ["postcss" /* POSTCSS */]: {
84
78
  options: {},
85
79
  scalable: true
86
80
  },
87
- [StyleTypes.SASS]: {
81
+ ["sass" /* SASS */]: {
88
82
  options: {}
89
83
  },
90
- [StyleTypes.LESS]: {
84
+ ["less" /* LESS */]: {
91
85
  options: {}
92
86
  },
93
- [StyleTypes.STYLUS]: {
87
+ ["stylus" /* STYLUS */]: {
94
88
  options: stylus_1.defaultOptions
95
89
  }
96
90
  };
97
91
  class StyleTransform {
98
92
  constructor(config = {}) {
99
- this.extConfigMap = new Map();
93
+ this.processConfigMap = new Map();
100
94
  this.init = (config) => {
101
95
  var _a;
102
96
  this.config = {
@@ -106,7 +100,21 @@ class StyleTransform {
106
100
  alias: (_a = config.alias) !== null && _a !== void 0 ? _a : {},
107
101
  rn: helper_1.recursiveMerge({}, DEFAULT_RN_CONFIG, config.rn)
108
102
  };
109
- Reflect.ownKeys(this.config.rn).forEach(key => { var _a; return this.extConfigMap.set(key, Object.assign(Object.assign({}, this.config.rn[key]), { alias: (_a = config.alias) !== null && _a !== void 0 ? _a : {} })); });
103
+ Reflect.ownKeys(this.config.rn).forEach((key) => {
104
+ var _a;
105
+ if ([
106
+ "sass" /* SASS */,
107
+ "less" /* LESS */,
108
+ "stylus" /* STYLUS */,
109
+ "postcss" /* POSTCSS */
110
+ ].includes(key.toLocaleLowerCase())) {
111
+ const processConfig = Object.assign(Object.assign({}, this.config.rn[key]), { alias: (_a = config.alias) !== null && _a !== void 0 ? _a : {} });
112
+ if (key.toLocaleLowerCase() === "sass" /* SASS */) {
113
+ processConfig.sass = this.config.sass;
114
+ }
115
+ this.processConfigMap.set(key, processConfig);
116
+ }
117
+ });
110
118
  };
111
119
  this.init(config);
112
120
  }
@@ -117,41 +125,58 @@ class StyleTransform {
117
125
  * @param {object} options
118
126
  */
119
127
  async processStyle(src, filename, options) {
128
+ let result;
120
129
  let css = src;
130
+ let map;
131
+ let additionalData = '';
121
132
  const ext = path_1.default.extname(filename);
122
- if (ext === '.less') {
123
- css = await less_1.default(src, filename, this.extConfigMap.get(StyleTypes.LESS));
133
+ if (/.less$/i.test(ext)) {
134
+ result = await less_1.default(src, filename, this.processConfigMap.get("less" /* LESS */));
124
135
  }
125
- else if (ext === '.sass' || ext === '.scss') {
126
- src = sass_1.processByExternal(src, filename, this.config.sass);
127
- css = await sass_1.default(src, filename, this.extConfigMap.get(StyleTypes.SASS), options);
136
+ else if (/.s(c|a)ss$/i.test(ext)) {
137
+ result = await sass_1.default(src, filename, this.processConfigMap.get("sass" /* SASS */), options);
128
138
  }
129
- else if (ext === '.styl' || ext === '.stylus') {
130
- css = await stylus_1.default(src, filename, this.extConfigMap.get(StyleTypes.STYLUS));
139
+ else if (/.styl(us)?$/i.test(ext)) {
140
+ result = await stylus_1.default(src, filename, this.processConfigMap.get("stylus" /* STYLUS */));
141
+ }
142
+ if (result) {
143
+ css = Buffer.isBuffer(result.css) ? result.css.toString() : result.css;
144
+ map = Buffer.isBuffer(result.map) ? result.map.toString() : result.map;
145
+ additionalData = result.additionalData;
131
146
  }
132
147
  // postcss 插件,比如处理平台特有样式,单位转换
133
- const cssItem = await this.postCSS(css, filename, this.extConfigMap.get(StyleTypes.POSTCSS), options);
134
- return cssItem;
148
+ return await this.postCSS({
149
+ css,
150
+ map,
151
+ filename,
152
+ additionalData,
153
+ transformOptions: options,
154
+ postcssConfig: this.processConfigMap.get("postcss" /* POSTCSS */)
155
+ });
135
156
  }
136
157
  /**
137
- * @description postcss处理
138
- * @param {string} css
139
- * @param {string} filename
140
- * @returns {Function | any}
158
+ * postcss处理
159
+ * @param param0 PostcssParam
160
+ * @returns {Promise | any}
141
161
  */
142
- postCSS(css, filename, postcssConfig, transformOptions) {
143
- const plugins = postcss_1.getPostcssPlugins({
162
+ postCSS({ css, map, filename, postcssConfig, transformOptions, additionalData }) {
163
+ const plugins = postcss_1.makePostcssPlugins({
164
+ filename,
165
+ postcssConfig,
166
+ transformOptions,
144
167
  designWidth: this.config.designWidth,
145
168
  deviceRatio: this.config.deviceRatio,
146
- postcssConfig,
147
- transformOptions
169
+ additionalData: additionalData
148
170
  });
149
- return postcss_1.default(css, filename, { options: postcssConfig.options, plugins })
150
- .then(cssString => {
151
- return {
152
- css: cssString,
153
- filename
154
- };
171
+ return postcss_1.default(css, filename, {
172
+ plugins,
173
+ options: Object.assign(Object.assign({}, postcssConfig.options), { map: map && {
174
+ prev: utils_1.normalizeSourceMap(map, filename),
175
+ inline: false,
176
+ annotation: false
177
+ } })
178
+ }).then(result => {
179
+ return Object.assign(Object.assign({}, result), { filename });
155
180
  });
156
181
  }
157
182
  /**
@@ -162,15 +187,17 @@ class StyleTransform {
162
187
  * @return {string} JSONString
163
188
  */
164
189
  async transform(src, filename, options = {}) {
165
- helper_1.printLog("start" /* START */, '样式文件处理开始', filename);
166
- const { css: cssSrc } = await this.processStyle(src, filename, options);
167
- // printLog(processTypeEnum.REMIND, cssSrc, filename)
190
+ // printLog(processTypeEnum.START, '样式文件处理开始', filename)
191
+ const result = await this.processStyle(src, filename, options);
168
192
  // 把 css 转换成对象 rn 的样式,接入 taro 的 css-to-react-native,比如有单位的处理
169
- const styleObject = taro_css_to_react_native_1.default(cssSrc, { parseMediaQueries: true, scalable: this.config.rn.postcss.scalable });
193
+ const styleObject = taro_css_to_react_native_1.default(result.css, {
194
+ parseMediaQueries: true,
195
+ scalable: this.config.rn.postcss.scalable
196
+ });
170
197
  // stylelint,转换成对象,对对象进行校验
171
198
  validateStyle({ styleObject, filename });
172
- const css = JSON.stringify(styleObject, null, 2).replace(/"(scalePx2dp\(.*?\))"/g, '$1');
173
- helper_1.printLog("compile" /* COMPILE */, '样式文件处理完毕', filename);
199
+ const css = JSON.stringify(styleObject, null, 2)
200
+ .replace(/"(scalePx2dp\(.*?\))"/g, '$1');
174
201
  // 注入自适应方法 scalePx2dp
175
202
  return getWrapedCSS(css);
176
203
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transforms/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transforms/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAuB;AACvB,wFAAmD;AACnD,2CAA0E;AAE1E,qDAAyF;AACzF,kDAA8E;AAC9E,kDAA4D;AAC5D,mDAA0G;AAC1G,6CAAmD;AAEnD,oCAA6C;AAE7C,SAAgB,YAAY,CAAE,GAAG;IAC/B,OAAO;;;;;;;;;;;;;;mCAc0B,GAAG;CACrC,CAAA;AACD,CAAC;AAjBD,oCAiBC;AAED;;GAEG;AACH,SAAS,aAAa,CAAE,EAAE,WAAW,EAAE,QAAQ,EAAE;IAC/C,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;QAC9B,IAAI;YACF,iCAAoB,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;SACtD;QAAC,OAAO,GAAG,EAAE;YACZ,sBAAsB;YACtB,IAAI,6EAA6E,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;gBAAE,OAAM;YAC3G,iBAAQ,0BAA0B,GAAG,CAAC,OAAO,EAAE,eAAe,QAAQ,EAAE,CAAC,CAAA;SAC1E;KACF;AACH,CAAC;AA0BD,MAAM,WAAW,GAAG,GAAG,CAAA;AAEvB,MAAM,WAAW,GAAG;IAClB,GAAG,EAAE,IAAI,GAAG,CAAC;IACb,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,IAAI,GAAG,CAAC;CACd,CAAA;AASD,MAAM,iBAAiB,GAAG;IACxB,yBAAsB,EAAE;QACtB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;KACf;IACD,mBAAmB,EAAE;QACnB,OAAO,EAAE,EAAE;KACZ;IACD,mBAAmB,EAAE;QACnB,OAAO,EAAE,EAAE;KACZ;IACD,uBAAqB,EAAE;QACrB,OAAO,EAAE,uBAAoB;KAC9B;CACF,CAAA;AAED,MAAqB,cAAc;IAKjC,YAAa,MAAM,GAAG,EAAE;QAFxB,qBAAgB,GAAG,IAAI,GAAG,EAAE,CAAA;QAM5B,SAAI,GAAG,CAAC,MAAM,EAAE,EAAE;;YAChB,IAAI,CAAC,MAAM,GAAG;gBACZ,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,WAAW;gBAC9C,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,WAAW;gBAC9C,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;gBACvB,KAAK,EAAE,MAAA,MAAM,CAAC,KAAK,mCAAI,EAAE;gBACzB,EAAE,EAAE,uBAAc,CAAC,EAAE,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,CAAC;aACrD,CAAA;YAED,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;;gBACtD,IACE;;;;;iBAKC,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAS,CAAC,EAC1C;oBACA,MAAM,aAAa,mCACd,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,KACtB,KAAK,EAAE,MAAA,MAAM,CAAC,KAAK,mCAAI,EAAE,GAC1B,CAAA;oBACD,IAAI,GAAG,CAAC,iBAAiB,EAAE,sBAAsB,EAAE;wBACjD,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;qBACtC;oBACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;iBAC9C;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QA/BC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACnB,CAAC;IAgCD;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAE,GAAW,EAAE,QAAgB,EAAE,OAAyB;QAC1E,IAAI,MAA0C,CAAA;QAC9C,IAAI,GAAG,GAAG,GAAG,CAAA;QACb,IAAI,GAAuB,CAAA;QAC3B,IAAI,cAAc,GAAG,EAAE,CAAA;QACvB,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAClC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACvB,MAAM,GAAG,MAAM,cAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,mBAAmB,CAAC,CAAA;SAC1F;aAAM,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAClC,MAAM,GAAG,MAAM,cAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,mBAAmB,EAAE,OAAO,CAAC,CAAA;SACnG;aAAM,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACnC,MAAM,GAAG,MAAM,gBAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,uBAAqB,CAAC,CAAA;SAC9F;QAED,IAAI,MAAM,EAAE;YACV,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAA;YACtE,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAA;YACtE,cAAc,GAAG,MAAM,CAAC,cAAc,CAAA;SACvC;QAED,6BAA6B;QAC7B,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;YACxB,GAAG;YACH,GAAG;YACH,QAAQ;YACR,cAAc;YACd,gBAAgB,EAAE,OAAO;YACzB,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,yBAAsB;SAC/D,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAE,EACP,GAAG,EACH,GAAG,EACH,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,cAAc,EACD;QACb,MAAM,OAAO,GAAG,4BAAkB,CAAC;YACjC,QAAQ;YACR,aAAa;YACb,gBAAgB;YAChB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACpC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACpC,cAAc,EAAE,cAAc;SAC/B,CAAC,CAAA;QAEF,OAAO,iBAAgB,CACrB,GAAG,EACH,QAAQ,EACR;YACE,OAAO;YACP,OAAO,kCACF,aAAa,CAAC,OAAO,KACxB,GAAG,EAAE,GAAG,IAAI;oBACV,IAAI,EAAE,0BAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC;oBACvC,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBAClB,GACF;SACF,CACF,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACd,uCACK,MAAM,KACT,QAAQ,IACT;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CAAE,GAAW,EAAE,QAAgB,EAAE,UAAU,EAAsB;QAC9E,wDAAwD;QACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QAE9D,4DAA4D;QAC5D,MAAM,WAAW,GAAG,kCAAY,CAC9B,MAAM,CAAC,GAAG,EACV;YACE,iBAAiB,EAAE,IAAI;YACvB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ;SAC1C,CACF,CAAA;QAED,0BAA0B;QAC1B,aAAa,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAA;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aAC7C,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAA;QAE1C,qBAAqB;QACrB,OAAO,YAAY,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;CACF;AApJD,iCAoJC"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const path_1 = __importDefault(require("path"));
7
7
  const less_1 = __importDefault(require("less"));
8
8
  const lessImport_1 = __importDefault(require("../utils/lessImport"));
9
+ const utils_1 = require("../utils");
9
10
  function renderToCSS(src, filename, options = {}) {
10
11
  // default plugins
11
12
  const plugins = [lessImport_1.default(options)];
@@ -13,25 +14,21 @@ function renderToCSS(src, filename, options = {}) {
13
14
  const paths = [path_1.default.dirname(path_1.default.resolve(process.cwd(), filename))];
14
15
  return new Promise((resolve, reject) => {
15
16
  less_1.default
16
- .render(src, Object.assign(Object.assign({}, options), { filename, plugins: plugins.concat(options.plugins || []), paths: paths.concat(options.paths || []) }), (err, output) => {
17
+ .render(src, Object.assign(Object.assign({}, options), { filename, plugins: plugins.concat(options.plugins || []), paths: paths.concat(options.paths || []) }), (err, result) => {
17
18
  if (err) {
18
19
  return reject(err.message);
19
20
  }
20
- resolve(output.css);
21
+ resolve(result);
21
22
  });
22
23
  });
23
24
  }
24
25
  function transform(src, filename, config) {
25
- let data = src;
26
- if (typeof config.additionalData !== 'undefined') {
27
- data =
28
- typeof config.additionalData === 'function'
29
- ? `${config.additionalData(data)}`
30
- : `${config.additionalData}\n${data}`;
31
- }
32
- return renderToCSS(data, filename, Object.assign(Object.assign({}, config.options), { alias: config.alias }))
33
- .then((css) => {
34
- return css;
26
+ const additionalData = utils_1.getAdditionalData(src, config.additionalData);
27
+ const data = utils_1.insertBefore(src, additionalData);
28
+ return renderToCSS(data, filename, Object.assign({ sourceMap: {
29
+ outputFilename: `${filename}.map`
30
+ }, alias: config.alias }, config.options)).then((result) => {
31
+ return Object.assign(Object.assign({}, result), { additionalData });
35
32
  });
36
33
  }
37
34
  exports.default = transform;
@@ -1 +1 @@
1
- {"version":3,"file":"less.js","sourceRoot":"","sources":["../../src/transforms/less.ts"],"names":[],"mappings":";;;;;AAAA,gDAAuB;AACvB,gDAAuB;AACvB,qEAAgD;AA6DhD,SAAS,WAAW,CAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAS;IACtD,kBAAkB;IAClB,MAAM,OAAO,GAAG,CAAC,oBAAc,CAAC,OAAO,CAAC,CAAC,CAAA;IACzC,qCAAqC;IACrC,MAAM,KAAK,GAAG,CAAC,cAAI,CAAC,OAAO,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IACnE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,cAAI;aACD,MAAM,CAAC,GAAG,kCACN,OAAO,KACV,QAAQ,EACR,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,EAC9C,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,KACvC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACjB,IAAI,GAAG,EAAE;gBACP,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;aAC3B;YACD,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACrB,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAwB,SAAS,CAAE,GAAW,EAAE,QAAgB,EAAE,MAAc;IAC9E,IAAI,IAAI,GAAG,GAAG,CAAA;IAEd,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,WAAW,EAAE;QAChD,IAAI;YACF,OAAO,MAAM,CAAC,cAAc,KAAK,UAAU;gBACzC,CAAC,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAClC,CAAC,CAAC,GAAG,MAAM,CAAC,cAAc,KAAK,IAAI,EAAE,CAAA;KAC1C;IACD,OAAO,WAAW,CAAC,IAAI,EAAE,QAAQ,kCAAO,MAAM,CAAC,OAAO,KAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAG;SAC3E,IAAI,CAAC,CAAC,GAAW,EAAE,EAAE;QACpB,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;AACN,CAAC;AAbD,4BAaC"}
1
+ {"version":3,"file":"less.js","sourceRoot":"","sources":["../../src/transforms/less.ts"],"names":[],"mappings":";;;;;AAAA,gDAAuB;AACvB,gDAAuB;AACvB,qEAAgD;AAChD,oCAA0D;AA8D1D,SAAS,WAAW,CAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAS;IACtD,kBAAkB;IAClB,MAAM,OAAO,GAAG,CAAC,oBAAc,CAAC,OAAO,CAAC,CAAC,CAAA;IACzC,qCAAqC;IACrC,MAAM,KAAK,GAAG,CAAC,cAAI,CAAC,OAAO,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IACnE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,cAAI;aACD,MAAM,CAAC,GAAG,kCACN,OAAO,KACV,QAAQ,EACR,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,EAC9C,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,KACvC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACjB,IAAI,GAAG,EAAE;gBACP,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;aAC3B;YACD,OAAO,CAAC,MAAM,CAAC,CAAA;QACjB,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAwB,SAAS,CAC/B,GAAW,EACX,QAAgB,EAChB,MAAc;IAEd,MAAM,cAAc,GAAG,yBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;IACpE,MAAM,IAAI,GAAG,oBAAY,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;IAE9C,OAAO,WAAW,CAChB,IAAI,EACJ,QAAQ,kBAEN,SAAS,EAAE;YACT,cAAc,EAAE,GAAG,QAAQ,MAAM;SAClC,EACD,KAAK,EAAE,MAAM,CAAC,KAAK,IAChB,MAAM,CAAC,OAAO,EAEpB,CAAC,IAAI,CAAC,CAAC,MAAoB,EAAE,EAAE;QAC9B,OAAO,gCAAK,MAAM,KAAE,cAAc,GAA4B,CAAA;IAChE,CAAC,CAAC,CAAA;AACJ,CAAC;AArBD,4BAqBC"}
@@ -3,12 +3,13 @@ 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.getPostcssPlugins = void 0;
6
+ exports.makePostcssPlugins = void 0;
7
7
  const postcss_1 = __importDefault(require("postcss"));
8
8
  const postcss_pxtransform_1 = __importDefault(require("postcss-pxtransform"));
9
9
  const postcss_import_1 = __importDefault(require("postcss-import"));
10
10
  const helper_1 = require("@tarojs/helper");
11
11
  const utils_1 = require("../utils");
12
+ const reporterSkip_1 = __importDefault(require("../utils/reporterSkip"));
12
13
  const rn_stylelint_json_1 = __importDefault(require("../config/rn-stylelint.json"));
13
14
  const defaultPxtransformOption = {
14
15
  enable: true,
@@ -16,7 +17,7 @@ const defaultPxtransformOption = {
16
17
  platform: 'rn'
17
18
  }
18
19
  };
19
- function getPostcssPlugins({ designWidth, deviceRatio, postcssConfig, transformOptions }) {
20
+ function makePostcssPlugins({ filename, designWidth, deviceRatio, postcssConfig, transformOptions, additionalData }) {
20
21
  if (designWidth) {
21
22
  defaultPxtransformOption.config.designWidth = designWidth;
22
23
  }
@@ -34,16 +35,16 @@ function getPostcssPlugins({ designWidth, deviceRatio, postcssConfig, transformO
34
35
  if (pxtransformOption.enable) {
35
36
  plugins.push(postcss_pxtransform_1.default(pxtransformOption.config));
36
37
  }
37
- plugins.push(require('stylelint')(rn_stylelint_json_1.default), require('postcss-reporter')({ clearReportedMessages: true }));
38
+ const skipRows = additionalData ? additionalData.split('\n').length : 0;
39
+ plugins.push(require('stylelint')(rn_stylelint_json_1.default), reporterSkip_1.default({ skipRows, filename }), require('postcss-reporter')({ clearReportedMessages: true }));
38
40
  return plugins;
39
41
  }
40
- exports.getPostcssPlugins = getPostcssPlugins;
42
+ exports.makePostcssPlugins = makePostcssPlugins;
41
43
  function transform(src, filename, { options, plugins }) {
42
44
  return postcss_1.default(plugins)
43
45
  .process(src, Object.assign({ from: filename }, options))
44
46
  .then(result => {
45
- const css = result.css;
46
- return css;
47
+ return result;
47
48
  });
48
49
  }
49
50
  exports.default = transform;
@@ -1 +1 @@
1
- {"version":3,"file":"postcss.js","sourceRoot":"","sources":["../../src/transforms/postcss.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAiD;AACjD,8EAA6C;AAC7C,oEAA0C;AAC1C,2CAA+C;AAC/C,oCAAuC;AACvC,oFAAyD;AAWzD,MAAM,wBAAwB,GAE1B;IACF,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE;QACN,QAAQ,EAAE,IAAI;KACf;CACF,CAAA;AAED,SAAgB,iBAAiB,CAAE,EACjC,WAAW,EACX,WAAW,EACX,aAAa,EACb,gBAAgB,EACjB;IACC,IAAI,WAAW,EAAE;QACf,wBAAwB,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;KAC1D;IAED,IAAI,WAAW,EAAE;QACf,wBAAwB,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;KAC1D;IACD,MAAM,iBAAiB,GAAG,uBAAc,CAAC,EAAE,EAAE,wBAAwB,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IAEjG,MAAM,OAAO,GAAG;QACd,wBAAa,CAAC;YACZ,OAAO,EAAE,SAAS,OAAO,CAAE,EAAU,EAAE,OAAe,EAAE,OAAsC;gBAC5F,OAAO,oBAAY,CACjB,EAAE,kCAEG,OAAO,KACV,OAAO,EACP,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,aAAa,CAAC,KAAK,EAC1B,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,IAEtC,CAAA;YACH,CAAC;SACF,CAAC;KACH,CAAA;IAED,IAAI,iBAAiB,CAAC,MAAM,EAAE;QAC5B,OAAO,CAAC,IAAI,CAAC,6BAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAA;KACpD;IAED,OAAO,CAAC,IAAI,CACV,OAAO,CAAC,WAAW,CAAC,CAAC,2BAAe,CAAC,EACrC,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAC7D,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AA1CD,8CA0CC;AAED,SAAwB,SAAS,CAAE,GAAW,EAAE,QAAgB,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;IACpF,OAAO,iBAAO,CAAC,OAAO,CAAC;SACpB,OAAO,CAAC,GAAG,kBAAI,IAAI,EAAE,QAAQ,IAAK,OAAO,EAAG;SAC5C,IAAI,CAAC,MAAM,CAAC,EAAE;QACb,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;QACtB,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;AACN,CAAC;AAPD,4BAOC"}
1
+ {"version":3,"file":"postcss.js","sourceRoot":"","sources":["../../src/transforms/postcss.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAiD;AACjD,8EAA6C;AAC7C,oEAA0C;AAC1C,2CAA+C;AAC/C,oCAAuC;AACvC,yEAAgD;AAChD,oFAAyD;AAWzD,MAAM,wBAAwB,GAE1B;IACF,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE;QACN,QAAQ,EAAE,IAAI;KACf;CACF,CAAA;AAED,SAAgB,kBAAkB,CAAE,EAClC,QAAQ,EACR,WAAW,EACX,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,cAAc,EACf;IACC,IAAI,WAAW,EAAE;QACf,wBAAwB,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;KAC1D;IAED,IAAI,WAAW,EAAE;QACf,wBAAwB,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;KAC1D;IACD,MAAM,iBAAiB,GAAG,uBAAc,CAAC,EAAE,EAAE,wBAAwB,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IAEjG,MAAM,OAAO,GAAG;QACd,wBAAa,CAAC;YACZ,OAAO,EAAE,SAAS,OAAO,CAAE,EAAU,EAAE,OAAe,EAAE,OAAsC;gBAC5F,OAAO,oBAAY,CACjB,EAAE,kCAEG,OAAO,KACV,OAAO,EACP,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,aAAa,CAAC,KAAK,EAC1B,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,IAEtC,CAAA;YACH,CAAC;SACF,CAAC;KACH,CAAA;IAED,IAAI,iBAAiB,CAAC,MAAM,EAAE;QAC5B,OAAO,CAAC,IAAI,CAAC,6BAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAA;KACpD;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAEvE,OAAO,CAAC,IAAI,CACV,OAAO,CAAC,WAAW,CAAC,CAAC,2BAAe,CAAC,EACrC,sBAAY,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EACpC,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAC7D,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AA/CD,gDA+CC;AAED,SAAwB,SAAS,CAAE,GAAW,EAAE,QAAgB,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;IACpF,OAAO,iBAAO,CAAC,OAAO,CAAC;SACpB,OAAO,CAAC,GAAG,kBAAI,IAAI,EAAE,QAAQ,IAAK,OAAO,EAAG;SAC5C,IAAI,CAAC,MAAM,CAAC,EAAE;QACb,OAAO,MAAM,CAAA;IACf,CAAC,CAAC,CAAA;AACN,CAAC;AAND,4BAMC"}
@@ -3,7 +3,6 @@ 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.processByExternal = void 0;
7
6
  const fs_1 = __importDefault(require("fs"));
8
7
  const path_1 = __importDefault(require("path"));
9
8
  const sass_1 = __importDefault(require("sass"));
@@ -20,13 +19,7 @@ function makeImportStatement(filePath, resource, rootDir) {
20
19
  const relativePath = path_1.default.relative(filePath, url).replace(/\\/g, '/'); // fix window path error
21
20
  return `@import '${relativePath}'`;
22
21
  }
23
- /**
24
- * 处理 additional 配置,比如 config.sass 配置
25
- * @param src
26
- * @param filename
27
- * @returns
28
- */
29
- function processByExternal(src, filename, config) {
22
+ function getGlobalResource(filename, config) {
30
23
  var _a;
31
24
  let resource = '';
32
25
  const projectDirectory = config.projectDirectory || process.cwd();
@@ -38,10 +31,16 @@ function processByExternal(src, filename, config) {
38
31
  const resources = ((_a = config.resource) === null || _a === void 0 ? void 0 : _a.map(source => makeImportStatement(filePath, source, projectDirectory))) || [];
39
32
  resource = resources.join(';\n');
40
33
  }
41
- const combineSource = utils_1.insertBefore(config === null || config === void 0 ? void 0 : config.data, resource);
42
- return utils_1.insertBefore(src, combineSource);
34
+ // https://taro-docs.jd.com/taro/docs/config-detail/#sassdata, data 覆盖 resurce 配置
35
+ return utils_1.insertAfter(resource, config === null || config === void 0 ? void 0 : config.data);
36
+ }
37
+ function combineResource(src, filename, config) {
38
+ // sass config
39
+ const globalResource = getGlobalResource(filename, config.sass);
40
+ // sass tranform config
41
+ const additionalData = utils_1.getAdditionalData(src, config.additionalData);
42
+ return utils_1.insertAfter(globalResource, additionalData);
43
43
  }
44
- exports.processByExternal = processByExternal;
45
44
  function renderToCSS(src, filename, options, transformOptions) {
46
45
  const defaultOpts = {
47
46
  importer: function (...params) {
@@ -69,7 +68,8 @@ function renderToCSS(src, filename, options, transformOptions) {
69
68
  alias: options.alias,
70
69
  platform: transformOptions.platform
71
70
  });
72
- return { file: file };
71
+ const contents = fs_1.default.readFileSync(file, 'utf8');
72
+ return { file, contents };
73
73
  }
74
74
  catch (err) {
75
75
  return err;
@@ -83,26 +83,19 @@ function renderToCSS(src, filename, options, transformOptions) {
83
83
  reject(err);
84
84
  }
85
85
  else {
86
- const css = result.css.toString();
87
- resolve(css);
86
+ resolve(result);
88
87
  }
89
88
  });
90
89
  });
91
90
  }
92
91
  function transform(src, filename, config, transformOptions) {
93
- let data = src;
92
+ const additionalData = combineResource(src, filename, config);
93
+ let data = utils_1.insertBefore(src, additionalData);
94
94
  if (!data) {
95
95
  data = `\n${data}`; // fix empty file error. reference https://github.com/sass/node-sass/blob/91c40a0bf0a3923ab9f91b82dcd479c25486235a/lib/index.js#L430
96
96
  }
97
- if (typeof config.additionalData !== 'undefined') {
98
- data =
99
- typeof config.additionalData === 'function'
100
- ? `${config.additionalData(data)}`
101
- : `${config.additionalData}\n${data}`;
102
- }
103
- return renderToCSS(data, filename, Object.assign(Object.assign({}, config.options), { alias: config.alias }), transformOptions)
104
- .then((css) => {
105
- return css;
97
+ return renderToCSS(data, filename, Object.assign({ file: filename, outFile: `${filename}.map`, sourceMap: true, alias: config.alias }, config.options), transformOptions).then((result) => {
98
+ return Object.assign(Object.assign({}, result), { additionalData });
106
99
  });
107
100
  }
108
101
  exports.default = transform;
@@ -1 +1 @@
1
- {"version":3,"file":"sass.js","sourceRoot":"","sources":["../../src/transforms/sass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sass.js","sourceRoot":"","sources":["../../src/transforms/sass.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.defaultOptions = void 0;
7
7
  const stylus_1 = __importDefault(require("stylus"));
8
+ const utils_1 = require("../utils");
8
9
  class Evaluator {
9
10
  }
10
11
  exports.defaultOptions = {
@@ -21,6 +22,11 @@ exports.defaultOptions = {
21
22
  function renderToCSS(src, filename, options = {}) {
22
23
  const stylusOptions = Object.assign({ filename }, options);
23
24
  const styl = stylus_1.default(src, stylusOptions);
25
+ styl.set('sourcemap', {
26
+ comment: true,
27
+ sourceRoot: '.',
28
+ basePath: '.'
29
+ });
24
30
  // include regular CSS on @import
25
31
  if (stylusOptions.includeCSS) {
26
32
  styl.set('include css', true);
@@ -82,22 +88,19 @@ function renderToCSS(src, filename, options = {}) {
82
88
  reject(err);
83
89
  }
84
90
  else {
85
- resolve(css);
91
+ resolve({
92
+ css,
93
+ map: styl.sourcemap
94
+ });
86
95
  }
87
96
  });
88
97
  });
89
98
  }
90
99
  function transform(src, filename, config) {
91
- let data = src;
92
- if (typeof config.additionalData !== 'undefined') {
93
- data =
94
- typeof config.additionalData === 'function'
95
- ? `${config.additionalData(data)}`
96
- : `${config.additionalData}\n${data}`;
97
- }
98
- return renderToCSS(data, filename, config.options)
99
- .then((css) => {
100
- return css;
100
+ const additionalData = utils_1.getAdditionalData(src, config.additionalData);
101
+ const data = utils_1.insertBefore(src, additionalData);
102
+ return renderToCSS(data, filename, config.options).then((result) => {
103
+ return Object.assign(Object.assign({}, result), { additionalData });
101
104
  });
102
105
  }
103
106
  exports.default = transform;