xhs-mp-compiler-cli 1.0.1-beta.1 → 1.0.1-beta.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.
Files changed (73) hide show
  1. package/dist/bin/xhs-mp-cli-build.js +0 -2
  2. package/dist/bin/xhs-mp-cli-dev.js +0 -3
  3. package/dist/index.js +7 -11
  4. package/dist/types/index.d.ts +1 -5
  5. package/dist/webpack-config/lib/postcssRpx2Vw.d.ts +0 -1
  6. package/dist/webpack-config/lib/postcssRpx2Vw.js +12 -17
  7. package/dist/webpack-config/loaders/mini-style-loader.js +3 -3
  8. package/dist/webpack-config/loaders/sjs-loader/index.d.ts +12 -1
  9. package/dist/webpack-config/loaders/sjs-loader/index.js +602 -86
  10. package/dist/webpack-config/loaders/sjs-loader/scope.d.ts +36 -0
  11. package/dist/webpack-config/loaders/sjs-loader/scope.js +122 -0
  12. package/dist/webpack-config/loaders/sjs-loader/tranform.d.ts +2 -0
  13. package/dist/webpack-config/loaders/sjs-loader/tranform.js +31 -0
  14. package/dist/webpack-config/presets/prod.js +3 -5
  15. package/dist/webpack-config/presets/render/RenderChunkPlugin.d.ts +0 -4
  16. package/dist/webpack-config/presets/render/RenderChunkPlugin.js +7 -22
  17. package/dist/webpack-config/presets/render/SjsEntryPlugin.js +47 -11
  18. package/dist/webpack-config/presets/render/index.js +12 -49
  19. package/dist/webpack-config/presets/service/XhsMpServiceChunkPlugin.js +2 -2
  20. package/dist/webpack-config/presets/service/index.js +1 -0
  21. package/package.json +4 -4
  22. package/dist/webpack-config/loaders/ml-loader/index.d.ts +0 -3
  23. package/dist/webpack-config/loaders/ml-loader/index.js +0 -66
  24. package/dist/webpack-config/loaders/ml-loader/ml2vue/generator.d.ts +0 -2
  25. package/dist/webpack-config/loaders/ml-loader/ml2vue/generator.js +0 -107
  26. package/dist/webpack-config/loaders/ml-loader/ml2vue/index.d.ts +0 -6
  27. package/dist/webpack-config/loaders/ml-loader/ml2vue/index.js +0 -64
  28. package/dist/webpack-config/loaders/ml-loader/ml2vue/injectScript.d.ts +0 -11
  29. package/dist/webpack-config/loaders/ml-loader/ml2vue/injectScript.js +0 -41
  30. package/dist/webpack-config/loaders/ml-loader/ml2vue/injectTemplate.d.ts +0 -2
  31. package/dist/webpack-config/loaders/ml-loader/ml2vue/injectTemplate.js +0 -18
  32. package/dist/webpack-config/loaders/ml-loader/ml2vue/parser.d.ts +0 -2
  33. package/dist/webpack-config/loaders/ml-loader/ml2vue/parser.js +0 -21
  34. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformer.d.ts +0 -7
  35. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformer.js +0 -185
  36. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleBindAttribute.d.ts +0 -2
  37. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleBindAttribute.js +0 -73
  38. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleBlockTag.d.ts +0 -13
  39. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleBlockTag.js +0 -42
  40. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleCatchAttribute.d.ts +0 -2
  41. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleCatchAttribute.js +0 -30
  42. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleClassAttribute.d.ts +0 -2
  43. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleClassAttribute.js +0 -17
  44. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleDataAttribute.d.ts +0 -2
  45. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleDataAttribute.js +0 -23
  46. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleHiddenAttribute.d.ts +0 -13
  47. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleHiddenAttribute.js +0 -25
  48. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleImportTag.d.ts +0 -4
  49. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleImportTag.js +0 -30
  50. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleIncludeTag.d.ts +0 -2
  51. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleIncludeTag.js +0 -30
  52. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleLoopAttribute.d.ts +0 -2
  53. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleLoopAttribute.js +0 -89
  54. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleMLAttribute.d.ts +0 -2
  55. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleMLAttribute.js +0 -33
  56. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleModelAttribute.d.ts +0 -2
  57. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleModelAttribute.js +0 -61
  58. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleOtherAttribute.d.ts +0 -2
  59. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleOtherAttribute.js +0 -35
  60. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSjsEvent.d.ts +0 -11
  61. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSjsEvent.js +0 -72
  62. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSlotAttribute.d.ts +0 -2
  63. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSlotAttribute.js +0 -74
  64. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSpaceAttribute.d.ts +0 -2
  65. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSpaceAttribute.js +0 -12
  66. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleStyleAttribute.d.ts +0 -2
  67. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleStyleAttribute.js +0 -16
  68. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/utils.d.ts +0 -10
  69. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/utils.js +0 -80
  70. package/dist/webpack-config/loaders/ml-loader/ml2vue/utils.d.ts +0 -7
  71. package/dist/webpack-config/loaders/ml-loader/ml2vue/utils.js +0 -41
  72. package/dist/webpack-config/loaders/sjs-loader/frame.d.ts +0 -1
  73. package/dist/webpack-config/loaders/sjs-loader/frame.js +0 -51
@@ -1,80 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.injectContext2Exp = exports.matchMustache = exports.addContextToNode = exports.injectModelHandler = void 0;
4
- /* eslint-disable consistent-return */
5
- const xhs_mp_compiler_utils_1 = require("xhs-mp-compiler-utils");
6
- const matchMustache = (value) => {
7
- if (!value)
8
- return [];
9
- return `${value}`.match(/{{(.*?)}}/g);
10
- };
11
- exports.matchMustache = matchMustache;
12
- function injectModelHandler(isComponent, property, changeEvent) {
13
- return `${xhs_mp_compiler_utils_1.CompileCallRuntimeMethodsNames.RunModuleUpdater}(${isComponent}, ${property}, ${changeEvent !== null && changeEvent !== void 0 ? changeEvent : changeEvent})`;
14
- }
15
- exports.injectModelHandler = injectModelHandler;
16
- function addContextToNode({ nodes, loopContext, underTemplate }) {
17
- nodes = Array.isArray(nodes) ? nodes : [nodes];
18
- for (const node of nodes) {
19
- if (loopContext) {
20
- node.loopContext = node.loopContext ? [...new Set([...node.loopContext, ...loopContext])] : [...new Set(loopContext)];
21
- }
22
- if (underTemplate !== undefined) {
23
- node.underTemplate = underTemplate;
24
- }
25
- if (node.children) {
26
- addContextToNode({ nodes: node.children, loopContext, underTemplate });
27
- }
28
- }
29
- }
30
- exports.addContextToNode = addContextToNode;
31
- const injectContext2Exp = (exp, node, type) => {
32
- const { ExecExpWithContext } = xhs_mp_compiler_utils_1.CompileCallRuntimeMethodsNames;
33
- let { loopContext = [], underTemplate } = node;
34
- // v-for 不添加自己的 loop context
35
- if (type === 7) {
36
- loopContext = node.parent.loopContext || [];
37
- }
38
- const loopContextStr = loopContext.join(', ');
39
- const templateContextStr = '...data';
40
- let context = '{}';
41
- if (loopContext.length && underTemplate) {
42
- // 对齐微信表现,两者都存在时 loopContext 在后
43
- context = `{${templateContextStr}, ${loopContextStr}}, ${underTemplate}`;
44
- }
45
- else if (loopContext.length && !underTemplate) {
46
- context = `{${loopContextStr}}`;
47
- }
48
- else if (!loopContext.length && underTemplate) {
49
- context = `{${templateContextStr}}, ${underTemplate}`;
50
- }
51
- // 模板字符串包裹的 字符串、表达式 的混合:`foo ${bar} ${visible ? 'show' : 'hide'}`
52
- // :class="`${runExp(`text`, {...{}, ...runExp(`{text: 'not', visible: false}`)}, '__class__')}`"
53
- if (type === 1) {
54
- return `\`${exp.replace(/{{/g, `\${${xhs_mp_compiler_utils_1.COMPILE_CALL_RUNTIME}('${ExecExpWithContext}', \``).replace(/}}/g, `\`, ${context})}`)}\``;
55
- }
56
- // 没有模板字符串包裹的:v-if="runExp(`exp`, {item})"
57
- if (type === 2 || type === 7) {
58
- return exp.replace(/{{/g, `${xhs_mp_compiler_utils_1.COMPILE_CALL_RUNTIME}('${ExecExpWithContext}', \``).replace(/}}/g, `\`, ${context})`);
59
- }
60
- // data-xxx="{{exp}}"
61
- // :data-xxx="JSON.stringify(`${$__t('x0', `exp`, {})}`)"
62
- if (type === 3) {
63
- return `\`${exp.replace(/{{/g, `\${JSON.stringify(${xhs_mp_compiler_utils_1.COMPILE_CALL_RUNTIME}('${ExecExpWithContext}', \``).replace(/}}/g, `\`, ${context}))}`)}\``;
64
- }
65
- // text 节点:{{text}} visible => {{$__e(`text`, {...{}, ...$__e(`{text: 'not', visible: true, style}`)})}} visible
66
- if (type === 4) {
67
- return exp.replace(/{{(.*?)}}/g, `{{${xhs_mp_compiler_utils_1.COMPILE_CALL_RUNTIME}('${ExecExpWithContext}', \`$1\`, ${context})}}`);
68
- }
69
- // data-xxx="abc/{{exp}}"
70
- // :data-xxx="JSON.stringify(`abc/${$__t('x0', `exp`, {})}`)"
71
- if (type === 5) {
72
- return `JSON.stringify(\`${exp.replace(/{{/g, `\${${xhs_mp_compiler_utils_1.COMPILE_CALL_RUNTIME}('${ExecExpWithContext}', \``).replace(/}}/g, `\`, ${context})}`)}\`)`;
73
- }
74
- // <template is="xxx" data="{{...item}}" />
75
- // <template is="xxx" :data="$__t('x0', `{...item}`, {context}})" />
76
- if (type === 6) {
77
- return exp.replace(/{{(.*?)}}/g, `${xhs_mp_compiler_utils_1.COMPILE_CALL_RUNTIME}('${ExecExpWithContext}', \`{$1}\`, ${context})`);
78
- }
79
- };
80
- exports.injectContext2Exp = injectContext2Exp;
@@ -1,7 +0,0 @@
1
- declare const isTemplateDefineNode: (node: any) => any;
2
- declare const isImportNode: (node: any) => any;
3
- declare const sortNodes: (nodes: any) => any;
4
- declare const formatPathToVar: (pathStr: string) => string;
5
- declare const notifyImport: (type: any) => void;
6
- declare const isCustomComponent: (tagName: string) => boolean;
7
- export { isTemplateDefineNode, isImportNode, sortNodes, formatPathToVar, notifyImport, isCustomComponent };
@@ -1,41 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.isCustomComponent = exports.notifyImport = exports.formatPathToVar = exports.sortNodes = exports.isImportNode = exports.isTemplateDefineNode = void 0;
7
- const tagTransformMap_1 = __importDefault(require("../../../lib/tagTransformMap"));
8
- const common_1 = require("../../../../utils/common");
9
- const knownTags = Object.values(tagTransformMap_1.default);
10
- const isTemplateDefineNode = node => node.name === 'template' && node.attribs.name;
11
- exports.isTemplateDefineNode = isTemplateDefineNode;
12
- const isSjsTag = node => ['sjs', 'wxs'].includes(node.name) && node.attribs.name;
13
- const isImportNode = node => node.name === 'import' && node.attribs.src;
14
- exports.isImportNode = isImportNode;
15
- // 将 template name sjs 标签提升
16
- const sortNodes = nodes => nodes.sort(node => (isTemplateDefineNode(node) || isSjsTag(node) ? -1 : 1));
17
- exports.sortNodes = sortNodes;
18
- const pathToVarCache = {};
19
- // 将路径转换为变量
20
- const formatPathToVar = (pathStr) => {
21
- if (!pathToVarCache[pathStr]) {
22
- pathToVarCache[pathStr] = `C${(0, common_1.md5)(pathStr)}`;
23
- }
24
- return pathToVarCache[pathStr];
25
- };
26
- exports.formatPathToVar = formatPathToVar;
27
- let importNotified = false;
28
- const notifyImport = type => {
29
- if (!importNotified) {
30
- // process.send?.(
31
- // JSON.stringify({
32
- // message: `检测到代码中使用了 ${type} 标签,基础库从 3.16.4 开始支持,发布小程序时请务必设置最低支持的基础库版本`,
33
- // method: 'cliNotify',
34
- // }),
35
- // )
36
- }
37
- importNotified = true;
38
- };
39
- exports.notifyImport = notifyImport;
40
- const isCustomComponent = (tagName) => !knownTags.includes(tagName);
41
- exports.isCustomComponent = isCustomComponent;
@@ -1 +0,0 @@
1
- export declare function generateCodeFrame(source: any, start?: number, end?: any): any;
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateCodeFrame = void 0;
4
- const range = 1;
5
- function generateCodeFrame(source, start = 0, end = source.length) {
6
- const lines = source.split(/\r?\n/);
7
- let count = 0;
8
- const res = [];
9
- for (let i = 0; i < lines.length; i++) {
10
- count += lines[i].length + 1;
11
- if (count >= start) {
12
- for (let j = i - range; j <= i + range || end > count; j++) {
13
- if (j < 0 || j >= lines.length)
14
- continue;
15
- // eslint-disable-line
16
- res.push(`${j + 1}${repeat(` `, 3 - String(j + 1).length)}| ${lines[j]}`); // eslint-disable-line
17
- const lineLength = lines[j].length;
18
- if (j === i) {
19
- // push underline
20
- const pad = start - (count - lineLength);
21
- // eslint-disable-line
22
- res.push(` ` + repeat(` `, pad) + `^`); // eslint-disable-line
23
- }
24
- else if (j > i) {
25
- if (end > count) {
26
- const length = Math.min(end - count, lineLength);
27
- res.push(`|` + repeat(`^`, length)); // eslint-disable-line
28
- }
29
- count += lineLength + 1;
30
- }
31
- }
32
- break;
33
- }
34
- }
35
- return res.join("\n");
36
- }
37
- exports.generateCodeFrame = generateCodeFrame;
38
- function repeat(str, n) {
39
- let result = '';
40
- if (n > 0) {
41
- while (true) { // eslint-disable-line
42
- if (n & 1)
43
- result += str; // eslint-disable-line
44
- n >>>= 1; // eslint-disable-line
45
- if (n <= 0)
46
- break;
47
- str += str;
48
- }
49
- }
50
- return result;
51
- }