xhs-mp-compiler-cli 1.0.1-beta.0

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 (159) hide show
  1. package/README.md +1 -0
  2. package/dist/bin/xhs-mp-cli-build.d.ts +2 -0
  3. package/dist/bin/xhs-mp-cli-build.js +42 -0
  4. package/dist/bin/xhs-mp-cli-dev.d.ts +2 -0
  5. package/dist/bin/xhs-mp-cli-dev.js +84 -0
  6. package/dist/bin/xhs-mp-cli.d.ts +2 -0
  7. package/dist/bin/xhs-mp-cli.js +16 -0
  8. package/dist/build/index.d.ts +3 -0
  9. package/dist/build/index.js +22 -0
  10. package/dist/dev-server/index.d.ts +3 -0
  11. package/dist/dev-server/index.js +62 -0
  12. package/dist/dev-server/lib/ensurePort.d.ts +2 -0
  13. package/dist/dev-server/lib/ensurePort.js +32 -0
  14. package/dist/dev-server/lib/openBrowser.d.ts +2 -0
  15. package/dist/dev-server/lib/openBrowser.js +23 -0
  16. package/dist/dev-server/lib/openChrome.applescript +78 -0
  17. package/dist/globalData/SjsModule.d.ts +32 -0
  18. package/dist/globalData/SjsModule.js +34 -0
  19. package/dist/index.d.ts +11 -0
  20. package/dist/index.js +118 -0
  21. package/dist/types/index.d.ts +110 -0
  22. package/dist/types/index.js +13 -0
  23. package/dist/utils/asyncWebpack.d.ts +3 -0
  24. package/dist/utils/asyncWebpack.js +38 -0
  25. package/dist/utils/combineExtJson.d.ts +3 -0
  26. package/dist/utils/combineExtJson.js +74 -0
  27. package/dist/utils/common.d.ts +7 -0
  28. package/dist/utils/common.js +35 -0
  29. package/dist/utils/depenedHelper.d.ts +31 -0
  30. package/dist/utils/depenedHelper.js +89 -0
  31. package/dist/utils/getCssSuffixName.d.ts +1 -0
  32. package/dist/utils/getCssSuffixName.js +9 -0
  33. package/dist/utils/getMlSuffixName.d.ts +1 -0
  34. package/dist/utils/getMlSuffixName.js +6 -0
  35. package/dist/utils/getPrefixName.d.ts +1 -0
  36. package/dist/utils/getPrefixName.js +6 -0
  37. package/dist/utils/projectConfig.d.ts +1 -0
  38. package/dist/utils/projectConfig.js +20 -0
  39. package/dist/utils/transformAppJson.d.ts +16 -0
  40. package/dist/utils/transformAppJson.js +199 -0
  41. package/dist/utils/validateAppJson.d.ts +4 -0
  42. package/dist/utils/validateAppJson.js +111 -0
  43. package/dist/webpack-config/index.d.ts +4 -0
  44. package/dist/webpack-config/index.js +41 -0
  45. package/dist/webpack-config/lib/const.d.ts +13 -0
  46. package/dist/webpack-config/lib/const.js +15 -0
  47. package/dist/webpack-config/lib/css.d.ts +2 -0
  48. package/dist/webpack-config/lib/css.js +41 -0
  49. package/dist/webpack-config/lib/postcssRpx2Vw.d.ts +13 -0
  50. package/dist/webpack-config/lib/postcssRpx2Vw.js +40 -0
  51. package/dist/webpack-config/lib/tagTransformMap.d.ts +35 -0
  52. package/dist/webpack-config/lib/tagTransformMap.js +38 -0
  53. package/dist/webpack-config/lib/utils.d.ts +5 -0
  54. package/dist/webpack-config/lib/utils.js +37 -0
  55. package/dist/webpack-config/loaders/component-entry-loader.d.ts +1 -0
  56. package/dist/webpack-config/loaders/component-entry-loader.js +31 -0
  57. package/dist/webpack-config/loaders/component-entry-requirements-loader.d.ts +1 -0
  58. package/dist/webpack-config/loaders/component-entry-requirements-loader.js +24 -0
  59. package/dist/webpack-config/loaders/mini-style-loader.d.ts +1 -0
  60. package/dist/webpack-config/loaders/mini-style-loader.js +69 -0
  61. package/dist/webpack-config/loaders/ml-loader/index.d.ts +3 -0
  62. package/dist/webpack-config/loaders/ml-loader/index.js +66 -0
  63. package/dist/webpack-config/loaders/ml-loader/ml2vue/generator.d.ts +2 -0
  64. package/dist/webpack-config/loaders/ml-loader/ml2vue/generator.js +107 -0
  65. package/dist/webpack-config/loaders/ml-loader/ml2vue/index.d.ts +6 -0
  66. package/dist/webpack-config/loaders/ml-loader/ml2vue/index.js +64 -0
  67. package/dist/webpack-config/loaders/ml-loader/ml2vue/injectScript.d.ts +11 -0
  68. package/dist/webpack-config/loaders/ml-loader/ml2vue/injectScript.js +41 -0
  69. package/dist/webpack-config/loaders/ml-loader/ml2vue/injectTemplate.d.ts +2 -0
  70. package/dist/webpack-config/loaders/ml-loader/ml2vue/injectTemplate.js +18 -0
  71. package/dist/webpack-config/loaders/ml-loader/ml2vue/parser.d.ts +2 -0
  72. package/dist/webpack-config/loaders/ml-loader/ml2vue/parser.js +21 -0
  73. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformer.d.ts +7 -0
  74. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformer.js +185 -0
  75. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleBindAttribute.d.ts +2 -0
  76. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleBindAttribute.js +73 -0
  77. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleBlockTag.d.ts +13 -0
  78. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleBlockTag.js +42 -0
  79. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleCatchAttribute.d.ts +2 -0
  80. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleCatchAttribute.js +30 -0
  81. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleClassAttribute.d.ts +2 -0
  82. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleClassAttribute.js +17 -0
  83. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleDataAttribute.d.ts +2 -0
  84. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleDataAttribute.js +23 -0
  85. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleHiddenAttribute.d.ts +13 -0
  86. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleHiddenAttribute.js +25 -0
  87. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleImportTag.d.ts +4 -0
  88. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleImportTag.js +30 -0
  89. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleIncludeTag.d.ts +2 -0
  90. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleIncludeTag.js +30 -0
  91. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleLoopAttribute.d.ts +2 -0
  92. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleLoopAttribute.js +89 -0
  93. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleMLAttribute.d.ts +2 -0
  94. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleMLAttribute.js +33 -0
  95. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleModelAttribute.d.ts +2 -0
  96. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleModelAttribute.js +61 -0
  97. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleOtherAttribute.d.ts +2 -0
  98. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleOtherAttribute.js +35 -0
  99. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSjsEvent.d.ts +11 -0
  100. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSjsEvent.js +72 -0
  101. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSlotAttribute.d.ts +2 -0
  102. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSlotAttribute.js +74 -0
  103. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSpaceAttribute.d.ts +2 -0
  104. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSpaceAttribute.js +12 -0
  105. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleStyleAttribute.d.ts +2 -0
  106. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleStyleAttribute.js +16 -0
  107. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/utils.d.ts +10 -0
  108. package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/utils.js +80 -0
  109. package/dist/webpack-config/loaders/ml-loader/ml2vue/utils.d.ts +7 -0
  110. package/dist/webpack-config/loaders/ml-loader/ml2vue/utils.js +41 -0
  111. package/dist/webpack-config/loaders/render-entry-loader.d.ts +1 -0
  112. package/dist/webpack-config/loaders/render-entry-loader.js +50 -0
  113. package/dist/webpack-config/loaders/service-entry-loader.d.ts +1 -0
  114. package/dist/webpack-config/loaders/service-entry-loader.js +51 -0
  115. package/dist/webpack-config/loaders/sjs-loader/frame.d.ts +1 -0
  116. package/dist/webpack-config/loaders/sjs-loader/frame.js +51 -0
  117. package/dist/webpack-config/loaders/sjs-loader/index.d.ts +1 -0
  118. package/dist/webpack-config/loaders/sjs-loader/index.js +93 -0
  119. package/dist/webpack-config/loaders/utils.d.ts +13 -0
  120. package/dist/webpack-config/loaders/utils.js +41 -0
  121. package/dist/webpack-config/loaders/wxss-loader.d.ts +1 -0
  122. package/dist/webpack-config/loaders/wxss-loader.js +76 -0
  123. package/dist/webpack-config/plugins/VueLoaderPlugin.d.ts +19 -0
  124. package/dist/webpack-config/plugins/VueLoaderPlugin.js +205 -0
  125. package/dist/webpack-config/plugins/XhsMpErrorTransformPlugin.d.ts +8 -0
  126. package/dist/webpack-config/plugins/XhsMpErrorTransformPlugin.js +40 -0
  127. package/dist/webpack-config/plugins/XhsMpJsonPlugin.d.ts +36 -0
  128. package/dist/webpack-config/plugins/XhsMpJsonPlugin.js +71 -0
  129. package/dist/webpack-config/presets/babel.d.ts +8 -0
  130. package/dist/webpack-config/presets/babel.js +57 -0
  131. package/dist/webpack-config/presets/common.d.ts +4 -0
  132. package/dist/webpack-config/presets/common.js +40 -0
  133. package/dist/webpack-config/presets/mp/MpEntryPlugin.d.ts +23 -0
  134. package/dist/webpack-config/presets/mp/MpEntryPlugin.js +87 -0
  135. package/dist/webpack-config/presets/mp/index.d.ts +4 -0
  136. package/dist/webpack-config/presets/mp/index.js +48 -0
  137. package/dist/webpack-config/presets/prod.d.ts +4 -0
  138. package/dist/webpack-config/presets/prod.js +85 -0
  139. package/dist/webpack-config/presets/render/ComponentEntryPlugin.d.ts +18 -0
  140. package/dist/webpack-config/presets/render/ComponentEntryPlugin.js +77 -0
  141. package/dist/webpack-config/presets/render/RenderChunkPlugin.d.ts +9 -0
  142. package/dist/webpack-config/presets/render/RenderChunkPlugin.js +65 -0
  143. package/dist/webpack-config/presets/render/RenderEntryPlugin.d.ts +14 -0
  144. package/dist/webpack-config/presets/render/RenderEntryPlugin.js +42 -0
  145. package/dist/webpack-config/presets/render/SjsEntryPlugin.d.ts +31 -0
  146. package/dist/webpack-config/presets/render/SjsEntryPlugin.js +124 -0
  147. package/dist/webpack-config/presets/render/index.d.ts +4 -0
  148. package/dist/webpack-config/presets/render/index.js +99 -0
  149. package/dist/webpack-config/presets/service/ServiceEntryPlugin.d.ts +8 -0
  150. package/dist/webpack-config/presets/service/ServiceEntryPlugin.js +36 -0
  151. package/dist/webpack-config/presets/service/XhsMpServiceChunkPlugin.d.ts +6 -0
  152. package/dist/webpack-config/presets/service/XhsMpServiceChunkPlugin.js +46 -0
  153. package/dist/webpack-config/presets/service/XhsResolveLimitPlugin.d.ts +8 -0
  154. package/dist/webpack-config/presets/service/XhsResolveLimitPlugin.js +65 -0
  155. package/dist/webpack-config/presets/service/XhsV2AssetsPlugin.d.ts +5 -0
  156. package/dist/webpack-config/presets/service/XhsV2AssetsPlugin.js +27 -0
  157. package/dist/webpack-config/presets/service/index.d.ts +4 -0
  158. package/dist/webpack-config/presets/service/index.js +38 -0
  159. package/package.json +124 -0
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const webpack_1 = require("webpack");
4
+ const webpack_sources_1 = require("webpack-sources");
5
+ const common_1 = require("../../../utils/common");
6
+ class XhsMpServiceChunkPlugin {
7
+ apply(compiler) {
8
+ compiler.hooks.compilation.tap('XhsMpServiceChunkPlugin', compilation => {
9
+ compilation.hooks.processAssets.tap({
10
+ name: 'XhsMpServiceChunkPlugin',
11
+ stage: webpack_1.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS,
12
+ }, () => {
13
+ var _a, _b, _c;
14
+ const serviceSource = (_a = compilation.getAsset('v1/service.js')) === null || _a === void 0 ? void 0 : _a.source;
15
+ let runtimeCode = (_b = compilation.getAsset('runtime.js')) === null || _b === void 0 ? void 0 : _b.source.source();
16
+ // 当没有引用相同 js 场景时, commonChunk 将是 undefined
17
+ const commonSource = ((_c = compilation.getAsset('service-common.js')) === null || _c === void 0 ? void 0 : _c.source) || '';
18
+ runtimeCode = `
19
+ if (!globalThis.__XHS_RUNTIME_REGISTERED__) {
20
+ globalThis.__XHS_RUNTIME_REGISTERED__ = true;
21
+ ${runtimeCode}
22
+ }`;
23
+ // 独立分包加入 runtimeChunk
24
+ if (serviceSource) {
25
+ // @ts-ignore 主包加入 runtimeChunk、commonChunk
26
+ compilation.updateAsset('v1/service.js', new webpack_sources_1.ConcatSource(runtimeCode, commonSource, serviceSource));
27
+ }
28
+ this.updateIndependentService(compiler, compilation, runtimeCode);
29
+ compilation.deleteAsset('runtime.js');
30
+ compilation.deleteAsset('service-common.js');
31
+ });
32
+ });
33
+ }
34
+ updateIndependentService(compiler, compilation, runtimeCode) {
35
+ var _a;
36
+ (_a = compiler.xhsData.appJSON.subPackages) === null || _a === void 0 ? void 0 : _a.filter(sub => sub.independent).map(sub => (0, common_1.unixJoin)('v1', sub.root, 'service.js')).forEach(servicePath => {
37
+ var _a;
38
+ const independentServiceSource = (_a = compilation.getAsset(servicePath)) === null || _a === void 0 ? void 0 : _a.source;
39
+ if (compilation.getAsset(servicePath)) {
40
+ // @ts-ignore
41
+ compilation.updateAsset(servicePath, new webpack_sources_1.ConcatSource(runtimeCode, independentServiceSource));
42
+ }
43
+ });
44
+ }
45
+ }
46
+ exports.default = XhsMpServiceChunkPlugin;
@@ -0,0 +1,8 @@
1
+ import { Resolver } from 'enhanced-resolve';
2
+ import { CliConfig } from '../../../types';
3
+ declare class XhsResolveLimitPlugin {
4
+ miniprogramDir: string;
5
+ constructor(options: CliConfig);
6
+ apply(resolver: Resolver): void;
7
+ }
8
+ export default XhsResolveLimitPlugin;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const fs_extra_1 = require("fs-extra");
13
+ const common_1 = require("../../../utils/common");
14
+ class XhsResolveLimitPlugin {
15
+ constructor(options) {
16
+ this.miniprogramDir = options.miniprogramDir;
17
+ }
18
+ apply(resolver) {
19
+ resolver
20
+ .getHook('file')
21
+ .tapAsync('XhsResolveLimitPlugin', (request, contextResolver, callback) => __awaiter(this, void 0, void 0, function* () {
22
+ var _a;
23
+ // @ts-ignore
24
+ let issuer = (0, common_1.toUnixPath)(((_a = request.context) === null || _a === void 0 ? void 0 : _a.issuer) || '');
25
+ let target = (0, common_1.toUnixPath)(request.path || '');
26
+ if (!issuer ||
27
+ target.includes('node_modules') ||
28
+ !issuer.startsWith(this.miniprogramDir) ||
29
+ !target.startsWith(this.miniprogramDir)) {
30
+ return callback();
31
+ }
32
+ issuer = issuer.replace(`${this.miniprogramDir}/`, '');
33
+ target = target.replace(new RegExp(this.miniprogramDir, 'g'), '').replace(/^\/+/g, '');
34
+ const appJSON = yield (0, fs_extra_1.readJson)(`${this.miniprogramDir}/app.json`);
35
+ appJSON.subPackages = appJSON.subPackages || appJSON.subpackages || [];
36
+ const subPkgs = appJSON.subPackages.map(pkg => pkg.root);
37
+ // 当 issuer 是分包
38
+ const issuerSubPkg = subPkgs.find(pkg => issuer.startsWith(pkg));
39
+ if (issuerSubPkg) {
40
+ // 允许 target 和 issuer 在同一个分包
41
+ if (issuer.startsWith(issuerSubPkg) && target.startsWith(issuerSubPkg)) {
42
+ return callback();
43
+ }
44
+ // issuer 是分包 target 是主包
45
+ if (appJSON.pages.some(page => target.startsWith(page))) {
46
+ // 当 issuer 是 **独立分包** 时,不能引用主包资源
47
+ if (appJSON.subPackages.find(subPkg => subPkg.root === issuerSubPkg).independent) {
48
+ return callback(new Error(`${issuer} 在独立分包内,独立分包不可引用主包 ${target} 资源`), request);
49
+ }
50
+ return callback();
51
+ }
52
+ // issuer 是分包,target 是分包
53
+ if (subPkgs.some(sub => target.startsWith(sub))) {
54
+ return callback(new Error(`${issuer} 不能引用 ${target},因为他们不在同一个分包`), request);
55
+ }
56
+ }
57
+ // issuer 是主包,此时 target 不能在分包
58
+ if (subPkgs.some(pkg => target.startsWith(pkg))) {
59
+ return callback(new Error(`${issuer} 在主包内,主包不可引用分包资源 ${target}`), request);
60
+ }
61
+ return callback();
62
+ }));
63
+ }
64
+ }
65
+ exports.default = XhsResolveLimitPlugin;
@@ -0,0 +1,5 @@
1
+ import { Compiler } from "webpack";
2
+ declare class XhsV2AssetsPlugin {
3
+ apply(compiler: Compiler): void;
4
+ }
5
+ export default XhsV2AssetsPlugin;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const webpack_1 = require("webpack");
4
+ class XhsV2AssetsPlugin {
5
+ apply(compiler) {
6
+ compiler.hooks.compilation.tap(XhsV2AssetsPlugin.name, compilation => {
7
+ // @ts-ignore
8
+ compilation.hooks.processAssets.tap({
9
+ name: XhsV2AssetsPlugin.name,
10
+ stage: webpack_1.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_COMPATIBILITY, // see below for more stages
11
+ }, (assets) => {
12
+ // @ts-ignore
13
+ const { appJSON } = compiler.xhsData;
14
+ // eslint-disable-next-line no-unneeded-ternary
15
+ if (assets['v1/service.js']) {
16
+ assets['v2/service.js'] = assets['v1/service.js'];
17
+ }
18
+ for (const { root } of appJSON.subPackages) {
19
+ if (assets[`v1/${root}/service.js`]) {
20
+ assets[`v2/${root}/service.js`] = assets[`v1/${root}/service.js`];
21
+ }
22
+ }
23
+ });
24
+ });
25
+ }
26
+ }
27
+ exports.default = XhsV2AssetsPlugin;
@@ -0,0 +1,4 @@
1
+ import Config from 'webpack-chain';
2
+ import { CliConfig } from '../../../types';
3
+ declare const presetService: (chain: Config, options: CliConfig) => void;
4
+ export default presetService;
@@ -0,0 +1,38 @@
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
+ const XhsMpJsonPlugin_1 = __importDefault(require("../../plugins/XhsMpJsonPlugin"));
7
+ const ServiceEntryPlugin_1 = __importDefault(require("./ServiceEntryPlugin"));
8
+ const XhsMpServiceChunkPlugin_1 = __importDefault(require("./XhsMpServiceChunkPlugin"));
9
+ const XhsV2AssetsPlugin_1 = __importDefault(require("./XhsV2AssetsPlugin"));
10
+ const presetService = (chain, options) => {
11
+ const { extJsonPath, enableV2 } = options;
12
+ chain.merge({
13
+ output: {
14
+ path: options.distDir,
15
+ globalObject: 'globalThis',
16
+ },
17
+ });
18
+ chain.plugin('ServiceEntryPlugin').use(ServiceEntryPlugin_1.default);
19
+ chain
20
+ .plugin('XhsMpJsonPlugin')
21
+ .use(XhsMpJsonPlugin_1.default, [
22
+ { mpDir: options.mpDir, miniprogramDir: options.miniprogramDir, extJsonPath },
23
+ ]);
24
+ chain.plugin('XhsMpServiceChunkPlugin').use(XhsMpServiceChunkPlugin_1.default);
25
+ if (enableV2) {
26
+ chain.plugin('XhsMpVersionStage2AssetsPlugin').use(XhsV2AssetsPlugin_1.default);
27
+ }
28
+ chain.optimization
29
+ .runtimeChunk({
30
+ name: 'runtime',
31
+ })
32
+ .splitChunks({
33
+ chunks: chunk => !chunk.name.startsWith('v0/'),
34
+ minSize: 0,
35
+ name: 'service-common',
36
+ });
37
+ };
38
+ exports.default = presetService;
package/package.json ADDED
@@ -0,0 +1,124 @@
1
+ {
2
+ "name": "xhs-mp-compiler-cli",
3
+ "version": "1.0.1-beta.0",
4
+ "description": "xhs mp command tool.",
5
+ "preferGlobal": true,
6
+ "category": "esm",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "publishConfig": {
10
+ "registry": "https://registry.npmjs.org/",
11
+ "access": "public"
12
+ },
13
+ "files": [
14
+ "dist/",
15
+ "bin/"
16
+ ],
17
+ "keywords": [
18
+ "cli"
19
+ ],
20
+ "author": "zyu1 <fuzhu@xiaohongshu.com>",
21
+ "license": "MIT",
22
+ "dependencies": {
23
+ "@babel/core": "^7.12.10",
24
+ "@babel/generator": "^7.12.10",
25
+ "@babel/parser": "^7.12.10",
26
+ "@babel/plugin-transform-runtime": "^7.12.10",
27
+ "@babel/preset-env": "^7.12.11",
28
+ "@babel/preset-typescript": "^7.12.7",
29
+ "@babel/register": "^7.12.10",
30
+ "@babel/runtime": "^7.15.4",
31
+ "@babel/traverse": "^7.12.10",
32
+ "@babel/types": "^7.12.10",
33
+ "@swc/core": "^1.3.74",
34
+ "@swc/helpers": "^0.5.1",
35
+ "@vue/babel-preset-jsx": "^1.2.4",
36
+ "xhs-mp-compiler-core-fork": "1.0.1-beta.0",
37
+ "xhs-mp-compiler-ml-loader": "1.0.1-beta.0",
38
+ "xhs-mp-compiler-utils": "1.0.1-beta.0",
39
+ "babel-loader": "^8.2.2",
40
+ "babel-plugin-istanbul": "^6.0.0",
41
+ "babel-preset-minify": "^0.4.3",
42
+ "clean-webpack-plugin": "^3.0.0",
43
+ "clone": "^2.1.2",
44
+ "commander": "^8.0.0",
45
+ "copy-webpack-plugin": "^9.0.1",
46
+ "core-js": "^3.18.3",
47
+ "css-loader": "^5.0.2",
48
+ "css-minimizer-webpack-plugin": "^1.2.0",
49
+ "cssnano": "4.1.10",
50
+ "enhanced-resolve": "^5.8.3",
51
+ "fork-ts-checker-webpack-plugin": "^6.1.0",
52
+ "friendly-errors-webpack-plugin": "^1.7.0",
53
+ "fs-extra": "^10.0.0",
54
+ "glob": "^8.0.1",
55
+ "htmlparser2": "^7.1.2",
56
+ "json-to-ast": "^2.1.0",
57
+ "lodash": "^4.17.21",
58
+ "mini-css-extract-plugin": "^1.6.2",
59
+ "module-alias": "^2.2.2",
60
+ "open": "^7.0.4",
61
+ "ora": "^5.4.1",
62
+ "postcss": "^8.2.8",
63
+ "postcss-import": "^14.0.2",
64
+ "postcss-loader": "^5.2.0",
65
+ "postcss-prefix-selector": "^1.10.0",
66
+ "postcss-preset-env": "^6.7.0",
67
+ "postcss-pxtorem": "^5.1.1",
68
+ "querystring": "^0.2.1",
69
+ "source-map": "^0.6.1",
70
+ "speed-measure-webpack-plugin": "^1.5.0",
71
+ "style-loader": "^1.2.1",
72
+ "swc-loader": "^0.1.15",
73
+ "tapable": "^2.2.1",
74
+ "terser-webpack-plugin": "^5.2.4",
75
+ "typescript": "^5.1.6",
76
+ "vue": "^3.2.26",
77
+ "vue-loader": "^16.4.1",
78
+ "vue-style-loader": "^4.1.2",
79
+ "webpack": "^5.88.2",
80
+ "webpack-bundle-analyzer": "^4.4.0",
81
+ "webpack-chain": "^6.5.1",
82
+ "webpack-sources": "^3.2.2"
83
+ },
84
+ "devDependencies": {
85
+ "@types/babel__generator": "7.6.3",
86
+ "@types/babel__traverse": "7.14.1",
87
+ "@types/fs-extra": "9.0.12",
88
+ "@types/jest": "26.0.24",
89
+ "@types/json-to-ast": "2.1.2",
90
+ "@types/mini-css-extract-plugin": "2.0.1",
91
+ "@types/postcss-import": "12.0.1",
92
+ "@types/postcss-preset-env": "6.7.3",
93
+ "@types/webpack-bundle-analyzer": "4.4.1",
94
+ "@types/webpack-dev-server": "3.11.5",
95
+ "@vue/test-utils": "2.0.0-rc.12",
96
+ "@xhs/eslint-plugin-xhs": "1.0.2",
97
+ "cpy-cli": "3.1.1",
98
+ "eslint": "7.27.0",
99
+ "eslint-config-prettier": "8.1.0",
100
+ "jest": "27.0.6",
101
+ "prettier": "~3.0.2",
102
+ "rimraf": "3.0.2",
103
+ "ts-jest": "27.0.3",
104
+ "ts-node": "10.0.0",
105
+ "typescript": "5.1.6",
106
+ "vue3-jest": "27.0.0-alpha.2",
107
+ "webpack-dev-server": "4.0.0-beta.3"
108
+ },
109
+ "scripts": {
110
+ "version": "formula changelog && git add .",
111
+ "clean": "rimraf ./dist",
112
+ "copy-files": "cpy '**/*' '!**/*.ts' ../dist/ --cwd=src/ --no-overwrite --parents",
113
+ "prebuild": "npm run clean",
114
+ "postbuild": "npm run copy-files",
115
+ "lint": "eslint . --fix",
116
+ "build": "npm run prebuild && tsc && npm run postbuild",
117
+ "dev": "npm run prebuild && tsc --watch && npm run postbuild",
118
+ "compile": "jest '(/tests/.*\\.spec)\\.ts$'",
119
+ "unit": "jest '(/tests/.*\\.test)\\.ts$' --collectCoverage=false",
120
+ "test": "npm run compile && npm run unit",
121
+ "dev:server": "node ./dist/bin/xhs-mp-cli.js dev -p xhs -l true -d"
122
+ },
123
+ "readme": "# 构建工具\n"
124
+ }