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.
- package/dist/bin/xhs-mp-cli-build.js +0 -2
- package/dist/bin/xhs-mp-cli-dev.js +0 -3
- package/dist/index.js +7 -11
- package/dist/types/index.d.ts +1 -5
- package/dist/webpack-config/lib/postcssRpx2Vw.d.ts +0 -1
- package/dist/webpack-config/lib/postcssRpx2Vw.js +12 -17
- package/dist/webpack-config/loaders/mini-style-loader.js +3 -3
- package/dist/webpack-config/loaders/sjs-loader/index.d.ts +12 -1
- package/dist/webpack-config/loaders/sjs-loader/index.js +602 -86
- package/dist/webpack-config/loaders/sjs-loader/scope.d.ts +36 -0
- package/dist/webpack-config/loaders/sjs-loader/scope.js +122 -0
- package/dist/webpack-config/loaders/sjs-loader/tranform.d.ts +2 -0
- package/dist/webpack-config/loaders/sjs-loader/tranform.js +31 -0
- package/dist/webpack-config/presets/prod.js +3 -5
- package/dist/webpack-config/presets/render/RenderChunkPlugin.d.ts +0 -4
- package/dist/webpack-config/presets/render/RenderChunkPlugin.js +7 -22
- package/dist/webpack-config/presets/render/SjsEntryPlugin.js +47 -11
- package/dist/webpack-config/presets/render/index.js +12 -49
- package/dist/webpack-config/presets/service/XhsMpServiceChunkPlugin.js +2 -2
- package/dist/webpack-config/presets/service/index.js +1 -0
- package/package.json +4 -4
- package/dist/webpack-config/loaders/ml-loader/index.d.ts +0 -3
- package/dist/webpack-config/loaders/ml-loader/index.js +0 -66
- package/dist/webpack-config/loaders/ml-loader/ml2vue/generator.d.ts +0 -2
- package/dist/webpack-config/loaders/ml-loader/ml2vue/generator.js +0 -107
- package/dist/webpack-config/loaders/ml-loader/ml2vue/index.d.ts +0 -6
- package/dist/webpack-config/loaders/ml-loader/ml2vue/index.js +0 -64
- package/dist/webpack-config/loaders/ml-loader/ml2vue/injectScript.d.ts +0 -11
- package/dist/webpack-config/loaders/ml-loader/ml2vue/injectScript.js +0 -41
- package/dist/webpack-config/loaders/ml-loader/ml2vue/injectTemplate.d.ts +0 -2
- package/dist/webpack-config/loaders/ml-loader/ml2vue/injectTemplate.js +0 -18
- package/dist/webpack-config/loaders/ml-loader/ml2vue/parser.d.ts +0 -2
- package/dist/webpack-config/loaders/ml-loader/ml2vue/parser.js +0 -21
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformer.d.ts +0 -7
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformer.js +0 -185
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleBindAttribute.d.ts +0 -2
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleBindAttribute.js +0 -73
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleBlockTag.d.ts +0 -13
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleBlockTag.js +0 -42
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleCatchAttribute.d.ts +0 -2
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleCatchAttribute.js +0 -30
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleClassAttribute.d.ts +0 -2
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleClassAttribute.js +0 -17
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleDataAttribute.d.ts +0 -2
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleDataAttribute.js +0 -23
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleHiddenAttribute.d.ts +0 -13
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleHiddenAttribute.js +0 -25
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleImportTag.d.ts +0 -4
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleImportTag.js +0 -30
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleIncludeTag.d.ts +0 -2
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleIncludeTag.js +0 -30
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleLoopAttribute.d.ts +0 -2
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleLoopAttribute.js +0 -89
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleMLAttribute.d.ts +0 -2
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleMLAttribute.js +0 -33
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleModelAttribute.d.ts +0 -2
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleModelAttribute.js +0 -61
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleOtherAttribute.d.ts +0 -2
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleOtherAttribute.js +0 -35
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSjsEvent.d.ts +0 -11
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSjsEvent.js +0 -72
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSlotAttribute.d.ts +0 -2
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSlotAttribute.js +0 -74
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSpaceAttribute.d.ts +0 -2
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSpaceAttribute.js +0 -12
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleStyleAttribute.d.ts +0 -2
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleStyleAttribute.js +0 -16
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/utils.d.ts +0 -10
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/utils.js +0 -80
- package/dist/webpack-config/loaders/ml-loader/ml2vue/utils.d.ts +0 -7
- package/dist/webpack-config/loaders/ml-loader/ml2vue/utils.js +0 -41
- package/dist/webpack-config/loaders/sjs-loader/frame.d.ts +0 -1
- 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
|
-
}
|