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.
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
@@ -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, liteCompiler = false, enableVDom = false } = startConfig;
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, liteCompiler } = handleVersion(startConfig);
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, liteCompiler } = handleVersion(startConfig);
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
  }
@@ -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' | 'liteCompiler' | 'enableV1' | 'enableV2' | 'enableVDom';
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
- exports.calcRpx2Vw = void 0;
4
- const toFixed = (number, precision) => {
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
- if (!$1)
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.indexOf('rpx') === -1)
16
+ if (!(0, xhs_mp_compiler_utils_1.isRpxValue)(decl.value))
26
17
  return;
27
- decl.value = decl.value.replace(pxRegex, replacement);
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.indexOf('rpx') === -1)
27
+ if (!(0, xhs_mp_compiler_utils_1.isRpxValue)(rule.params))
33
28
  return;
34
- rule.params = rule.params.replace(pxRegex, replacement);
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.localStorage && globalThis.__XHS_APPEND_CSS(${JSON.stringify(code)});
53
- export default ${JSON.stringify(shortPath)};
54
- `).source();
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
- export {};
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;