xhs-mp-compiler-cli 1.0.1-beta.1 → 1.0.1-beta.3
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
|
@@ -18,7 +18,6 @@ commander.usage('[options]').option('-vdom, --enableVDom <boolean>', 'vdom 架
|
|
|
18
18
|
commander.parse(process.argv);
|
|
19
19
|
const mpDir = commander.opts().mpDir ? path_1.default.resolve(commander.opts().mpDir) : process.cwd();
|
|
20
20
|
const platform = commander.opts().platform ? commander.opts().platform : 'xhs';
|
|
21
|
-
const liteCompiler = commander.opts().lite === "true";
|
|
22
21
|
const enableV1 = commander.opts().enableV1 === "true";
|
|
23
22
|
const enableV2 = commander.opts().enableV2 === "true";
|
|
24
23
|
const enableVDom = commander.opts().enableVDom === "true";
|
|
@@ -28,7 +27,6 @@ const multiCompiler = (0, index_1.nodeStart)({
|
|
|
28
27
|
action: 'build',
|
|
29
28
|
platform,
|
|
30
29
|
compressJs,
|
|
31
|
-
liteCompiler,
|
|
32
30
|
enableSourcemap: false,
|
|
33
31
|
enableV1,
|
|
34
32
|
enableV2,
|
|
@@ -43,7 +43,6 @@ commander.parse(process.argv);
|
|
|
43
43
|
const mpDir = commander.opts().mpDir ? path_1.default.resolve(commander.opts().mpDir) : process.cwd();
|
|
44
44
|
const platform = commander.opts().platform ? commander.opts().platform : 'xhs';
|
|
45
45
|
const port = commander.opts().port ? commander.opts().port : 1388;
|
|
46
|
-
const liteCompiler = commander.opts().lite === "true";
|
|
47
46
|
const out = commander.opts().out === "true";
|
|
48
47
|
const enableV1 = commander.opts().enableV1 === "true";
|
|
49
48
|
const enableV2 = commander.opts().enableV2 === "true";
|
|
@@ -55,7 +54,6 @@ if (out) {
|
|
|
55
54
|
action: 'dev',
|
|
56
55
|
platform,
|
|
57
56
|
compressJs: false,
|
|
58
|
-
liteCompiler,
|
|
59
57
|
enableSourcemap: false,
|
|
60
58
|
enableV1,
|
|
61
59
|
enableV2,
|
|
@@ -75,7 +73,6 @@ else {
|
|
|
75
73
|
platform,
|
|
76
74
|
compressJs: false,
|
|
77
75
|
port,
|
|
78
|
-
liteCompiler,
|
|
79
76
|
enableSourcemap: true,
|
|
80
77
|
enableV1,
|
|
81
78
|
enableV2,
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.utils = exports.nodeStart = void 0;
|
|
16
|
-
const module_alias_1 = __importDefault(require("module-alias"));
|
|
17
16
|
const path_1 = __importDefault(require("path"));
|
|
18
17
|
const webpack_1 = __importDefault(require("webpack"));
|
|
19
18
|
const fs_extra_1 = require("fs-extra");
|
|
@@ -24,10 +23,9 @@ const common_1 = require("./utils/common");
|
|
|
24
23
|
const types_1 = require("./types");
|
|
25
24
|
const projectConfig_1 = require("./utils/projectConfig");
|
|
26
25
|
const transformAppJson_1 = __importDefault(require("./utils/transformAppJson"));
|
|
27
|
-
module_alias_1.default.addAlias('@vue/compiler-core', require.resolve('xhs-mp-compiler-core-fork'));
|
|
28
26
|
// 防御编程
|
|
29
27
|
const handleVersion = (startConfig) => {
|
|
30
|
-
let { action, enableV1 = true, enableV2 = false,
|
|
28
|
+
let { action, enableV1 = true, enableV2 = false, enableVDom = false } = startConfig;
|
|
31
29
|
// 正式环境必须有v1 并且不允许并行编译
|
|
32
30
|
if (action === 'build') {
|
|
33
31
|
enableV1 = true;
|
|
@@ -39,14 +37,13 @@ const handleVersion = (startConfig) => {
|
|
|
39
37
|
return {
|
|
40
38
|
enableV1,
|
|
41
39
|
enableV2,
|
|
42
|
-
liteCompiler: enableVDom || liteCompiler, // vdom 架构一定使用 liteCompiler 编译
|
|
43
40
|
enableVDom,
|
|
44
41
|
};
|
|
45
42
|
};
|
|
46
43
|
const start = (startConfig) => __awaiter(void 0, void 0, void 0, function* () {
|
|
47
44
|
const { mpDir, action, callback, platform, extJsonPath, port } = startConfig;
|
|
48
45
|
process.env.__platform = platform;
|
|
49
|
-
const { enableV1, enableV2, enableVDom
|
|
46
|
+
const { enableV1, enableV2, enableVDom } = handleVersion(startConfig);
|
|
50
47
|
const projectJson = (0, projectConfig_1.getProjectConfig)(mpDir);
|
|
51
48
|
let miniprogramDir = path_1.default.join(mpDir, projectJson.miniprogramRoot || '');
|
|
52
49
|
miniprogramDir = miniprogramDir.endsWith('/') ? miniprogramDir.slice(0, -1) : miniprogramDir;
|
|
@@ -61,7 +58,6 @@ const start = (startConfig) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
61
58
|
compressJs: false,
|
|
62
59
|
enableSourcemap: true,
|
|
63
60
|
port,
|
|
64
|
-
liteCompiler,
|
|
65
61
|
enableV1,
|
|
66
62
|
enableV2,
|
|
67
63
|
enableVDom,
|
|
@@ -75,8 +71,7 @@ exports.default = start;
|
|
|
75
71
|
function nodeStart(startConfig) {
|
|
76
72
|
const { mpDir, action, tsConfigPath, platform, extJsonPath, compressJs = false, enableSourcemap = false, } = startConfig;
|
|
77
73
|
process.env.__platform = platform;
|
|
78
|
-
const { enableV1, enableV2, enableVDom
|
|
79
|
-
process.env.__vdom = String(enableVDom);
|
|
74
|
+
const { enableV1, enableV2, enableVDom } = handleVersion(startConfig);
|
|
80
75
|
const distDir = startConfig.distDir || path_1.default.join(process.cwd(), 'dist');
|
|
81
76
|
try {
|
|
82
77
|
if ((0, fs_extra_1.existsSync)(distDir)) { // eslint-disable-line
|
|
@@ -99,16 +94,17 @@ function nodeStart(startConfig) {
|
|
|
99
94
|
cacheDirectory: startConfig.cacheDirectory,
|
|
100
95
|
compressJs,
|
|
101
96
|
enableSourcemap,
|
|
102
|
-
liteCompiler,
|
|
103
97
|
enableV1,
|
|
104
98
|
enableV2,
|
|
105
99
|
enableVDom,
|
|
106
100
|
};
|
|
107
101
|
const webpackConfig = (0, webpack_config_1.default)(config);
|
|
108
|
-
/* 修改在ide里的node_modules的路径 */
|
|
109
102
|
webpackConfig.forEach(config => {
|
|
110
|
-
var _a, _b;
|
|
103
|
+
var _a, _b, _c, _d;
|
|
104
|
+
/* 修改在ide里的node_modules的路径 */
|
|
111
105
|
(_b = (_a = config.resolve) === null || _a === void 0 ? void 0 : _a.modules) === null || _b === void 0 ? void 0 : _b.push(path_1.default.resolve(__dirname, '../../../'));
|
|
106
|
+
// cli的node_modules路径
|
|
107
|
+
(_d = (_c = config.resolve) === null || _c === void 0 ? void 0 : _c.modules) === null || _d === void 0 ? void 0 : _d.push(path_1.default.resolve(__dirname, '../../'));
|
|
112
108
|
});
|
|
113
109
|
return (0, webpack_1.default)(webpackConfig);
|
|
114
110
|
}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -78,15 +78,11 @@ export interface CliConfig {
|
|
|
78
78
|
* 服务端口
|
|
79
79
|
*/
|
|
80
80
|
port?: number;
|
|
81
|
-
/**
|
|
82
|
-
* 轻量编译器
|
|
83
|
-
*/
|
|
84
|
-
liteCompiler?: boolean;
|
|
85
81
|
enableV1?: boolean;
|
|
86
82
|
enableV2?: boolean;
|
|
87
83
|
enableVDom?: boolean;
|
|
88
84
|
}
|
|
89
|
-
type CliPick = 'mpDir' | 'distDir' | 'watch' | 'tsConfigPath' | 'extJsonPath' | 'cacheDirectory' | 'compressJs' | 'enableSourcemap' | '
|
|
85
|
+
type CliPick = 'mpDir' | 'distDir' | 'watch' | 'tsConfigPath' | 'extJsonPath' | 'cacheDirectory' | 'compressJs' | 'enableSourcemap' | 'enableV1' | 'enableV2' | 'enableVDom';
|
|
90
86
|
export interface IStart extends Pick<CliConfig, CliPick> {
|
|
91
87
|
/**
|
|
92
88
|
* 调用的能力,dev 还是 build
|
|
@@ -5,7 +5,6 @@ interface IPostcssRpx2Vw {
|
|
|
5
5
|
unitPrecision?: number;
|
|
6
6
|
mediaQuery?: boolean;
|
|
7
7
|
}
|
|
8
|
-
export declare const calcRpx2Vw: (pixels: number, baseWidth?: number, unitPrecision?: number, outputUnit?: string) => string;
|
|
9
8
|
declare const postcssRpx2Vw: ({ outputUnit, baseWidth, unitPrecision, mediaQuery, }: IPostcssRpx2Vw) => {
|
|
10
9
|
postcssPlugin: string;
|
|
11
10
|
Root: (root: Root) => void;
|
|
@@ -1,37 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const multiplier = Math.pow(10, (precision + 1));
|
|
6
|
-
const wholeNumber = Math.floor(number * multiplier);
|
|
7
|
-
return (Math.round(wholeNumber / 10) * 10) / multiplier;
|
|
8
|
-
};
|
|
9
|
-
const calcRpx2Vw = (pixels, baseWidth = 750, unitPrecision = 5, outputUnit = 'vw') => toFixed((pixels / baseWidth) * 100, unitPrecision) + outputUnit;
|
|
10
|
-
exports.calcRpx2Vw = calcRpx2Vw;
|
|
3
|
+
const postcss_1 = require("postcss");
|
|
4
|
+
const xhs_mp_compiler_utils_1 = require("xhs-mp-compiler-utils");
|
|
11
5
|
const postcssRpx2Vw = ({ outputUnit = 'vw', baseWidth = 750, unitPrecision = 5, mediaQuery = false, }) => {
|
|
12
|
-
const pxRegex = new RegExp('"[^"]+"|\'[^\']+\'|url\\([^\\)]+\\)|(\\d*\\.?\\d+)rpx', 'ig');
|
|
13
6
|
const replacement = (m, $1) => {
|
|
14
|
-
|
|
15
|
-
return m;
|
|
16
|
-
const pixels = parseFloat($1);
|
|
17
|
-
return (0, exports.calcRpx2Vw)(pixels, baseWidth, unitPrecision, outputUnit);
|
|
7
|
+
return (0, xhs_mp_compiler_utils_1.calcRpx2Vw)($1, baseWidth, unitPrecision, outputUnit);
|
|
18
8
|
};
|
|
19
9
|
return {
|
|
20
10
|
postcssPlugin: 'postcss-rpx-2-vw',
|
|
21
11
|
// https://astexplorer.net/#/2uBU1BLuJ1
|
|
22
12
|
Root: (root) => {
|
|
23
13
|
root.walkRules(rule => {
|
|
14
|
+
const rpxEntries = [];
|
|
24
15
|
rule.walkDecls(decl => {
|
|
25
|
-
if (decl.value
|
|
16
|
+
if (!(0, xhs_mp_compiler_utils_1.isRpxValue)(decl.value))
|
|
26
17
|
return;
|
|
27
|
-
decl.value
|
|
18
|
+
rpxEntries.push({ prop: decl.prop, value: decl.value });
|
|
19
|
+
decl.value = decl.value.replace(xhs_mp_compiler_utils_1.RPX_REGEX, replacement);
|
|
20
|
+
});
|
|
21
|
+
rpxEntries.forEach(decl => {
|
|
22
|
+
rule.append(new postcss_1.Declaration({ prop: '--ide-' + decl.prop, value: decl.value }));
|
|
28
23
|
});
|
|
29
24
|
});
|
|
30
25
|
if (mediaQuery) {
|
|
31
26
|
root.walkAtRules('media', rule => {
|
|
32
|
-
if (rule.params
|
|
27
|
+
if (!(0, xhs_mp_compiler_utils_1.isRpxValue)(rule.params))
|
|
33
28
|
return;
|
|
34
|
-
rule.params = rule.params.replace(
|
|
29
|
+
rule.params = rule.params.replace(xhs_mp_compiler_utils_1.RPX_REGEX, replacement);
|
|
35
30
|
});
|
|
36
31
|
}
|
|
37
32
|
},
|
|
@@ -49,9 +49,9 @@ function miniStyleLoader(source) {
|
|
|
49
49
|
return `export default void 0;`;
|
|
50
50
|
}
|
|
51
51
|
// 判断浏览器环境,注入css添加逻辑
|
|
52
|
-
return new webpack_sources_1.RawSource(`globalThis.
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
return new webpack_sources_1.RawSource(`globalThis.__XHS_IS_WEBVIEW && globalThis.__XHS_APPEND_CSS(${JSON.stringify(code)});`
|
|
53
|
+
+
|
|
54
|
+
`export default ${JSON.stringify(shortPath)};`).source();
|
|
55
55
|
}
|
|
56
56
|
// 压缩css
|
|
57
57
|
minify(source, shortPath)
|
|
@@ -1 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
import type { Span } from '@swc/core';
|
|
2
|
+
export declare const SJS_HELPER = "_sjs$";
|
|
3
|
+
declare function sjsCompiler(code: any, onRequire: (s: string) => string): {
|
|
4
|
+
code: string;
|
|
5
|
+
map: string | undefined;
|
|
6
|
+
legacyCode: string;
|
|
7
|
+
errors: {
|
|
8
|
+
message: string;
|
|
9
|
+
span: Span;
|
|
10
|
+
}[];
|
|
11
|
+
};
|
|
12
|
+
export default sjsCompiler;
|