@tarojs/taroize 3.8.0-canary.0 → 4.0.0-alpha.2

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,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseModule = exports.getWXMLsource = exports.parseTemplate = exports.buildTemplateName = void 0;
4
- const t = require("babel-types");
5
- const fs = require("fs");
3
+ exports.parseModule = exports.getWXMLsource = exports.parseTemplate = exports.preParseTemplate = exports.getSrcRelPath = exports.buildTemplateName = void 0;
4
+ const t = require("@babel/types");
5
+ const helper_1 = require("@tarojs/helper");
6
6
  const path_1 = require("path");
7
7
  const global_1 = require("./global");
8
8
  const utils_1 = require("./utils");
@@ -29,28 +29,158 @@ function buildTemplateName(name, pascal = true) {
29
29
  return str.join('');
30
30
  }
31
31
  exports.buildTemplateName = buildTemplateName;
32
- function parseTemplate(path, dirPath) {
32
+ /**
33
+ * 支持import的src绝对路径转为相对路径
34
+ *
35
+ * @param dirPath 文件目录的绝对路径
36
+ * @param srcPath import的src路径
37
+ * @returns 处理后的相对路径
38
+ */
39
+ function getSrcRelPath(dirPath, srcPath) {
40
+ if (srcPath.startsWith('/')) {
41
+ const absolutPath = (0, path_1.join)(utils_1.setting.rootPath, srcPath.substr(1));
42
+ if (!helper_1.fs.existsSync(absolutPath) && !helper_1.fs.existsSync(`${absolutPath}.wxml`)) {
43
+ throw new Error(`import/include 的 src 请填入正确路径再进行转换:src="${srcPath}"`);
44
+ }
45
+ let relativePath = (0, path_1.relative)(dirPath, absolutPath);
46
+ relativePath = relativePath.replace(/\\/g, '/');
47
+ if (relativePath.indexOf('.') !== 0) {
48
+ srcPath = './' + relativePath;
49
+ return srcPath;
50
+ }
51
+ else {
52
+ return relativePath;
53
+ }
54
+ }
55
+ else {
56
+ return srcPath;
57
+ }
58
+ }
59
+ exports.getSrcRelPath = getSrcRelPath;
60
+ /**
61
+ * @description 预解析template模板
62
+ * @param path template在AST中的区域
63
+ * @returns
64
+ */
65
+ function preParseTemplate(path) {
66
+ var _a, _b;
33
67
  if (!path.container) {
34
68
  return;
35
69
  }
36
70
  const openingElement = path.get('openingElement');
37
71
  const attrs = openingElement.get('attributes');
38
- const is = attrs.find(attr => attr.get('name').isJSXIdentifier({ name: 'is' }));
39
- const data = attrs.find(attr => attr.get('name').isJSXIdentifier({ name: 'data' }));
40
- // const spread = attrs.find(attr => attr.get('name').isJSXIdentifier({ name: 'spread' }))
41
- const name = attrs.find(attr => attr.get('name').isJSXIdentifier({ name: 'name' }));
72
+ const name = attrs.find((attr) => t.isJSXAttribute(attr) &&
73
+ t.isJSXIdentifier(attr.get('name')) &&
74
+ t.isJSXAttribute(attr.node) &&
75
+ attr.node.name.name === 'name');
76
+ if (!(name && t.isJSXAttribute(name.node))) {
77
+ return;
78
+ }
79
+ // 获取template name
80
+ const value = name.node.value;
81
+ if (value === null || !t.isStringLiteral(value)) {
82
+ // @ts-ignore
83
+ const { line, column } = ((_b = (_a = path.node) === null || _a === void 0 ? void 0 : _a.position) === null || _b === void 0 ? void 0 : _b.start) || { line: 0, column: 0 };
84
+ const position = { col: column, row: line };
85
+ throw new utils_1.IReportError('template 的 `name` 属性只能是字符串', 'TemplateNameTypeMismatchError', 'WXML_FILE', (0, utils_1.astToCode)(path.node) || '', position);
86
+ }
87
+ const templateName = buildTemplateName(value.value);
88
+ const templateFuncs = new Set();
89
+ const templateApplys = new Set();
90
+ path.traverse({
91
+ JSXAttribute(p) {
92
+ (0, utils_1.updateLogFileContent)(`INFO [taroize] preParseTemplate - 解析JSXAttribute ${(0, utils_1.getLineBreak)()}${p} ${(0, utils_1.getLineBreak)()}`);
93
+ // 获取 template方法
94
+ const node = p.node;
95
+ if (t.isJSXExpressionContainer(node.value) &&
96
+ t.isMemberExpression(node.value.expression) &&
97
+ t.isThisExpression(node.value.expression.object) &&
98
+ t.isIdentifier(node.value.expression.property)) {
99
+ // funcName加入到funcs
100
+ const funcName = node.value.expression.property.name;
101
+ if (!templateFuncs.has(funcName)) {
102
+ templateFuncs.add(funcName);
103
+ }
104
+ }
105
+ },
106
+ JSXOpeningElement(p) {
107
+ var _a, _b;
108
+ (0, utils_1.updateLogFileContent)(`INFO [taroize] preParseTemplate - 解析JSXOpeningElement ${(0, utils_1.getLineBreak)()}${p} ${(0, utils_1.getLineBreak)()}`);
109
+ // 获取 template调用的模板
110
+ const attrs = p.get('attributes');
111
+ const is = attrs.find((attr) => t.isJSXAttribute(attr) &&
112
+ t.isJSXIdentifier(attr.get('name')) &&
113
+ t.isJSXAttribute(attr.node) &&
114
+ attr.node.name.name === 'is');
115
+ if (!(is && t.isJSXAttribute(is.node))) {
116
+ return;
117
+ }
118
+ const value = is.node.value;
119
+ if (!value) {
120
+ // @ts-ignore
121
+ const { line, column } = ((_b = (_a = p.node) === null || _a === void 0 ? void 0 : _a.position) === null || _b === void 0 ? void 0 : _b.start) || { line: 0, column: 0 };
122
+ const position = { col: column, row: line };
123
+ throw new utils_1.IReportError('template 的 `is` 属性不能为空', 'TemplateIsAttributeEmptyError', 'WXML_FILE', (0, utils_1.astToCode)(path.node) || '', position);
124
+ }
125
+ // is的模板调用形式为 is="xxx", xxx为模板名或表达式
126
+ if (t.isStringLiteral(value)) {
127
+ const apply = buildTemplateName(value.value);
128
+ templateApplys.add(apply);
129
+ }
130
+ },
131
+ });
132
+ return {
133
+ name: templateName,
134
+ funcs: templateFuncs,
135
+ applys: templateApplys,
136
+ };
137
+ }
138
+ exports.preParseTemplate = preParseTemplate;
139
+ function parseTemplate(path, dirPath, wxses) {
140
+ var _a, _b, _c, _d, _e, _f;
141
+ if (!path.container || !path.isJSXElement()) {
142
+ return;
143
+ }
144
+ (0, utils_1.updateLogFileContent)(`INFO [taroize] parseTemplate - 入参 ${(0, utils_1.getLineBreak)()}path: ${path}, dirPath: ${dirPath} ${(0, utils_1.getLineBreak)()}`);
145
+ const openingElement = path.get('openingElement');
146
+ const attrs = openingElement.get('attributes');
147
+ const is = attrs.find((attr) => t.isJSXAttribute(attr) &&
148
+ t.isJSXIdentifier(attr.get('name')) &&
149
+ t.isJSXAttribute(attr.node) &&
150
+ attr.node.name.name === 'is');
151
+ const data = attrs.find((attr) => t.isJSXAttribute(attr) &&
152
+ t.isJSXIdentifier(attr.get('name')) &&
153
+ t.isJSXAttribute(attr.node) &&
154
+ attr.node.name.name === 'data');
155
+ const name = attrs.find((attr) => t.isJSXAttribute(attr) &&
156
+ t.isJSXIdentifier(attr.get('name')) &&
157
+ t.isJSXAttribute(attr.node) &&
158
+ attr.node.name.name === 'name');
42
159
  const refIds = new Set();
43
160
  const loopIds = new Set();
44
161
  const imports = [];
45
- if (name) {
162
+ if (name && t.isJSXAttribute(name.node)) {
46
163
  const value = name.node.value;
47
164
  if (value === null || !t.isStringLiteral(value)) {
48
165
  throw new Error('template 的 `name` 属性只能是字符串');
49
166
  }
167
+ // 收集template原始name, 作为map的key
168
+ const templateName = value.value;
50
169
  const className = buildTemplateName(value.value);
51
170
  path.traverse((0, wxml_1.createWxmlVistor)(loopIds, refIds, dirPath, [], imports));
171
+ // refIds中可能包含wxs模块,应从refIds中去除并单独以模块的形式导入
172
+ const usedWxses = new Set();
173
+ const refdata = refIds;
174
+ refdata.forEach((refId) => {
175
+ wxses.forEach((wxsId) => {
176
+ if (wxsId.module.includes(refId)) {
177
+ usedWxses.add(wxsId);
178
+ refIds.delete(refId);
179
+ }
180
+ });
181
+ });
52
182
  const firstId = Array.from(refIds)[0];
53
- refIds.forEach(id => {
183
+ refIds.forEach((id) => {
54
184
  if (loopIds.has(id) && id !== firstId) {
55
185
  refIds.delete(id);
56
186
  }
@@ -71,21 +201,28 @@ function parseTemplate(path, dirPath) {
71
201
  render = (0, utils_1.buildRender)(block, [], Array.from(refIds), []);
72
202
  }
73
203
  const classDecl = t.classDeclaration(t.identifier(className), t.memberExpression(t.identifier('React'), t.identifier('Component')), t.classBody([render]), []);
204
+ // 添加withWeapp装饰器
205
+ classDecl.decorators = [t.decorator(t.callExpression(t.identifier('withWeapp'), [t.objectExpression([])]))];
74
206
  path.remove();
75
207
  return {
76
208
  name: className,
77
- ast: classDecl
209
+ ast: classDecl,
210
+ tmplName: templateName,
211
+ usedWxses: usedWxses,
78
212
  };
79
213
  }
80
- else if (is) {
214
+ else if (is && t.isJSXAttribute(is.node)) {
81
215
  const value = is.node.value;
82
216
  if (!value) {
83
- throw new Error('template 的 `is` 属性不能为空');
217
+ // @ts-ignore
218
+ const { line, column } = ((_b = (_a = path.node) === null || _a === void 0 ? void 0 : _a.position) === null || _b === void 0 ? void 0 : _b.start) || { line: 0, column: 0 };
219
+ const position = { col: column, row: line };
220
+ throw new utils_1.IReportError('template 的 `is` 属性不能为空', 'TemplateIsAttributeEmptyError', 'WXML_FILE', (0, utils_1.astToCode)(path.node) || '', position);
84
221
  }
85
222
  if (t.isStringLiteral(value)) {
86
223
  const className = buildTemplateName(value.value);
87
224
  const attributes = [];
88
- if (data) {
225
+ if (data && t.isJSXAttribute(data.node)) {
89
226
  attributes.push(data.node);
90
227
  }
91
228
  path.replaceWith(t.jSXElement(t.jSXOpeningElement(t.jSXIdentifier(className), attributes), t.jSXClosingElement(t.jSXIdentifier(className)), [], true));
@@ -94,7 +231,7 @@ function parseTemplate(path, dirPath) {
94
231
  if (t.isStringLiteral(value.expression)) {
95
232
  const className = buildTemplateName(value.expression.value);
96
233
  const attributes = [];
97
- if (data) {
234
+ if (data && t.isJSXAttribute(data.node)) {
98
235
  attributes.push(data.node);
99
236
  }
100
237
  path.replaceWith(t.jSXElement(t.jSXOpeningElement(t.jSXIdentifier(className), attributes), t.jSXClosingElement(t.jSXIdentifier(className)), [], true));
@@ -102,29 +239,37 @@ function parseTemplate(path, dirPath) {
102
239
  else if (t.isConditional(value.expression)) {
103
240
  const { test, consequent, alternate } = value.expression;
104
241
  if (!t.isStringLiteral(consequent) || !t.isStringLiteral(alternate)) {
105
- throw new Error('当 template is 标签是三元表达式时,他的两个值都必须为字符串');
242
+ // @ts-ignore
243
+ const { line, column } = ((_d = (_c = path.node) === null || _c === void 0 ? void 0 : _c.position) === null || _d === void 0 ? void 0 : _d.start) || { line: 0, column: 0 };
244
+ const position = { col: column, row: line };
245
+ throw new utils_1.IReportError('当 template is 标签是三元表达式时,他的两个值都必须为字符串', 'TemplateIsAttributeTypeMismatchError', 'WXML_FILE', (0, utils_1.astToCode)(path.node) || '', position);
106
246
  }
107
247
  const attributes = [];
108
- if (data) {
248
+ if (data && t.isJSXAttribute(data.node)) {
109
249
  attributes.push(data.node);
110
250
  }
111
251
  const block = (0, utils_1.buildBlockElement)();
112
- block.children = [t.jSXExpressionContainer(t.conditionalExpression(test, t.jSXElement(t.jSXOpeningElement(t.jSXIdentifier('Template'), attributes.concat([t.jSXAttribute(t.jSXIdentifier('is'), consequent)])), t.jSXClosingElement(t.jSXIdentifier('Template')), [], true), t.jSXElement(t.jSXOpeningElement(t.jSXIdentifier('Template'), attributes.concat([t.jSXAttribute(t.jSXIdentifier('is'), alternate)])), t.jSXClosingElement(t.jSXIdentifier('Template')), [], true)))];
252
+ block.children = [
253
+ t.jSXExpressionContainer(t.conditionalExpression(test, t.jSXElement(t.jSXOpeningElement(t.jSXIdentifier('Template'), attributes.concat([t.jSXAttribute(t.jSXIdentifier('is'), consequent)])), t.jSXClosingElement(t.jSXIdentifier('Template')), [], true), t.jSXElement(t.jSXOpeningElement(t.jSXIdentifier('Template'), attributes.concat([t.jSXAttribute(t.jSXIdentifier('is'), alternate)])), t.jSXClosingElement(t.jSXIdentifier('Template')), [], true))),
254
+ ];
113
255
  path.replaceWith(block);
114
256
  }
115
257
  }
116
258
  return;
117
259
  }
118
- throw new Error('template 标签必须指名 `is` 或 `name` 任意一个标签');
260
+ // @ts-ignore
261
+ const { line, column } = ((_f = (_e = path.node) === null || _e === void 0 ? void 0 : _e.position) === null || _f === void 0 ? void 0 : _f.start) || { line: 0, column: 0 };
262
+ const position = { col: column, row: line };
263
+ throw new utils_1.IReportError('template 标签必须指名 `is` 或 `name` 任意一个标签', 'TemplateMissingIsNameError', 'WXML_FILE', (0, utils_1.astToCode)(path.node) || '', position);
119
264
  }
120
265
  exports.parseTemplate = parseTemplate;
121
266
  function getWXMLsource(dirPath, src, type) {
122
267
  try {
123
- let filePath = (0, path_1.resolve)(dirPath, src);
268
+ let filePath = (0, path_1.join)(dirPath, src);
124
269
  if (!(0, path_1.extname)(filePath)) {
125
- filePath = (filePath + '.wxml');
270
+ filePath = filePath + '.wxml';
126
271
  }
127
- const file = fs.readFileSync(filePath, 'utf-8');
272
+ const file = helper_1.fs.readFileSync(filePath, 'utf-8');
128
273
  return file;
129
274
  }
130
275
  catch (e) {
@@ -134,31 +279,51 @@ function getWXMLsource(dirPath, src, type) {
134
279
  }
135
280
  exports.getWXMLsource = getWXMLsource;
136
281
  function parseModule(jsx, dirPath, type) {
282
+ var _a, _b, _c, _d, _e, _f, _g, _h;
283
+ (0, utils_1.updateLogFileContent)(`INFO [taroize] parseModule - 入参 ${(0, utils_1.getLineBreak)()}jsx: ${jsx}, dirPath: ${dirPath} ${(0, utils_1.getLineBreak)()}`);
137
284
  const openingElement = jsx.get('openingElement');
138
285
  const attrs = openingElement.get('attributes');
139
- const src = attrs.find(attr => attr.get('name').isJSXIdentifier({ name: 'src' }));
286
+ // const src = attrs.find(attr => t.isJSXAttribute(attr) && t.isJSXIdentifier(attr.name) && attr.name.name === 'src')
287
+ // Fix
288
+ const src = attrs.find((attr) => t.isJSXAttribute(attr) &&
289
+ t.isJSXIdentifier(attr.get('name')) &&
290
+ t.isJSXAttribute(attr.node) &&
291
+ attr.node.name.name === 'src');
140
292
  if (!src) {
141
- throw new Error(`${type} 标签必须包含 \`src\` 属性`);
293
+ // @ts-ignore
294
+ const { line, column } = ((_b = (_a = jsx.node) === null || _a === void 0 ? void 0 : _a.position) === null || _b === void 0 ? void 0 : _b.start) || { line: 0, column: 0 };
295
+ const position = { col: column, row: line };
296
+ (0, utils_1.updateLogFileContent)(`ERROR [taroize] parseModule - ${type} 标签未包含 src 属性 ${(0, utils_1.getLineBreak)()}`);
297
+ throw new utils_1.IReportError(`${type} 标签必须包含 \`src\` 属性`, 'WxmlTagSrcAttributeError', 'WXML_FILE', (0, utils_1.astToCode)(jsx.node) || '', position);
142
298
  }
143
299
  if ((0, path_1.extname)(dirPath)) {
144
300
  dirPath = (0, path_1.dirname)(dirPath);
145
301
  }
146
- const value = src.get('value');
147
- if (!value.isStringLiteral()) {
148
- throw new Error(`${type} 标签的 src 属性值必须是一个字符串`);
302
+ if (!t.isJSXAttribute(src.node)) {
303
+ // @ts-ignore
304
+ const { line, column } = ((_d = (_c = jsx.node) === null || _c === void 0 ? void 0 : _c.position) === null || _d === void 0 ? void 0 : _d.start) || { line: 0, column: 0 };
305
+ const position = { col: column, row: line };
306
+ (0, utils_1.updateLogFileContent)(`ERROR [taroize] parseModule - ${type} 标签src AST节点未包含node ${(0, utils_1.getLineBreak)()}`);
307
+ throw new utils_1.IReportError(`${type} 标签src AST节点 必须包含node`, 'WxmlTagSrcAttributeError', 'WXML_FILE', (0, utils_1.astToCode)(jsx.node) || '', position);
149
308
  }
150
- let srcValue = value.node.value;
151
- if (srcValue.startsWith('/')) {
152
- const vpath = (0, path_1.resolve)(utils_1.setting.rootPath, srcValue.substr(1));
153
- if (!fs.existsSync(vpath)) {
154
- throw new Error(`import/include src 请填入相对路径再进行转换:src="${srcValue}"`);
155
- }
156
- let relativePath = (0, path_1.relative)(dirPath, vpath);
157
- relativePath = relativePath.replace(/\\/g, '/');
158
- if (relativePath.indexOf('.') !== 0) {
159
- srcValue = './' + relativePath;
160
- }
161
- srcValue = relativePath;
309
+ const value = src.node.value;
310
+ if (!t.isStringLiteral(value)) {
311
+ // @ts-ignore
312
+ const { line, column } = ((_f = (_e = jsx.node) === null || _e === void 0 ? void 0 : _e.position) === null || _f === void 0 ? void 0 : _f.start) || { line: 0, column: 0 };
313
+ const position = { col: column, row: line };
314
+ (0, utils_1.updateLogFileContent)(`ERROR [taroize] parseModule - ${type} 标签的 src 属性值不是一个字符串 ${(0, utils_1.getLineBreak)()}`);
315
+ throw new utils_1.IReportError(`${type} 标签的 src 属性值必须是一个字符串`, 'WxmlTagSrcAttributeError', 'WXML_FILE', (0, utils_1.astToCode)(jsx.node) || '', position);
316
+ }
317
+ let srcValue = value.value;
318
+ // 判断是否为绝对路径
319
+ try {
320
+ srcValue = getSrcRelPath(dirPath, srcValue);
321
+ }
322
+ catch (error) {
323
+ // @ts-ignore
324
+ const { line, column } = ((_h = (_g = jsx.node) === null || _g === void 0 ? void 0 : _g.position) === null || _h === void 0 ? void 0 : _h.start) || { line: 0, column: 0 };
325
+ const position = { col: column, row: line };
326
+ throw new utils_1.IReportError('相对路径解析失败', 'ImportSrcPathFormatError', 'WXML_FILE', (0, utils_1.astToCode)(jsx.node) || '', position);
162
327
  }
163
328
  if (type === 'import') {
164
329
  const wxml = getWXMLsource(dirPath, srcValue, type);
@@ -177,6 +342,7 @@ function parseModule(jsx, dirPath, type) {
177
342
  if (wxmlStr === '') {
178
343
  if (jsx.node.children.length) {
179
344
  console.error(`标签: <include src="${srcValue}"> 没有自动关闭。形如:<include src="${srcValue}" /> 才是标准的 wxml 格式。`);
345
+ (0, utils_1.updateLogFileContent)(`WARN [taroize] parseModule - 标签: <include src="${srcValue}"> 没有自动关闭 ${(0, utils_1.getLineBreak)()}`);
180
346
  }
181
347
  jsx.remove();
182
348
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/template.ts"],"names":[],"mappings":"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"}