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.
- package/README.md +1 -0
- package/dist/bin/xhs-mp-cli-build.d.ts +2 -0
- package/dist/bin/xhs-mp-cli-build.js +42 -0
- package/dist/bin/xhs-mp-cli-dev.d.ts +2 -0
- package/dist/bin/xhs-mp-cli-dev.js +84 -0
- package/dist/bin/xhs-mp-cli.d.ts +2 -0
- package/dist/bin/xhs-mp-cli.js +16 -0
- package/dist/build/index.d.ts +3 -0
- package/dist/build/index.js +22 -0
- package/dist/dev-server/index.d.ts +3 -0
- package/dist/dev-server/index.js +62 -0
- package/dist/dev-server/lib/ensurePort.d.ts +2 -0
- package/dist/dev-server/lib/ensurePort.js +32 -0
- package/dist/dev-server/lib/openBrowser.d.ts +2 -0
- package/dist/dev-server/lib/openBrowser.js +23 -0
- package/dist/dev-server/lib/openChrome.applescript +78 -0
- package/dist/globalData/SjsModule.d.ts +32 -0
- package/dist/globalData/SjsModule.js +34 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +118 -0
- package/dist/types/index.d.ts +110 -0
- package/dist/types/index.js +13 -0
- package/dist/utils/asyncWebpack.d.ts +3 -0
- package/dist/utils/asyncWebpack.js +38 -0
- package/dist/utils/combineExtJson.d.ts +3 -0
- package/dist/utils/combineExtJson.js +74 -0
- package/dist/utils/common.d.ts +7 -0
- package/dist/utils/common.js +35 -0
- package/dist/utils/depenedHelper.d.ts +31 -0
- package/dist/utils/depenedHelper.js +89 -0
- package/dist/utils/getCssSuffixName.d.ts +1 -0
- package/dist/utils/getCssSuffixName.js +9 -0
- package/dist/utils/getMlSuffixName.d.ts +1 -0
- package/dist/utils/getMlSuffixName.js +6 -0
- package/dist/utils/getPrefixName.d.ts +1 -0
- package/dist/utils/getPrefixName.js +6 -0
- package/dist/utils/projectConfig.d.ts +1 -0
- package/dist/utils/projectConfig.js +20 -0
- package/dist/utils/transformAppJson.d.ts +16 -0
- package/dist/utils/transformAppJson.js +199 -0
- package/dist/utils/validateAppJson.d.ts +4 -0
- package/dist/utils/validateAppJson.js +111 -0
- package/dist/webpack-config/index.d.ts +4 -0
- package/dist/webpack-config/index.js +41 -0
- package/dist/webpack-config/lib/const.d.ts +13 -0
- package/dist/webpack-config/lib/const.js +15 -0
- package/dist/webpack-config/lib/css.d.ts +2 -0
- package/dist/webpack-config/lib/css.js +41 -0
- package/dist/webpack-config/lib/postcssRpx2Vw.d.ts +13 -0
- package/dist/webpack-config/lib/postcssRpx2Vw.js +40 -0
- package/dist/webpack-config/lib/tagTransformMap.d.ts +35 -0
- package/dist/webpack-config/lib/tagTransformMap.js +38 -0
- package/dist/webpack-config/lib/utils.d.ts +5 -0
- package/dist/webpack-config/lib/utils.js +37 -0
- package/dist/webpack-config/loaders/component-entry-loader.d.ts +1 -0
- package/dist/webpack-config/loaders/component-entry-loader.js +31 -0
- package/dist/webpack-config/loaders/component-entry-requirements-loader.d.ts +1 -0
- package/dist/webpack-config/loaders/component-entry-requirements-loader.js +24 -0
- package/dist/webpack-config/loaders/mini-style-loader.d.ts +1 -0
- package/dist/webpack-config/loaders/mini-style-loader.js +69 -0
- package/dist/webpack-config/loaders/ml-loader/index.d.ts +3 -0
- package/dist/webpack-config/loaders/ml-loader/index.js +66 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/generator.d.ts +2 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/generator.js +107 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/index.d.ts +6 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/index.js +64 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/injectScript.d.ts +11 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/injectScript.js +41 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/injectTemplate.d.ts +2 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/injectTemplate.js +18 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/parser.d.ts +2 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/parser.js +21 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformer.d.ts +7 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformer.js +185 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleBindAttribute.d.ts +2 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleBindAttribute.js +73 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleBlockTag.d.ts +13 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleBlockTag.js +42 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleCatchAttribute.d.ts +2 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleCatchAttribute.js +30 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleClassAttribute.d.ts +2 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleClassAttribute.js +17 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleDataAttribute.d.ts +2 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleDataAttribute.js +23 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleHiddenAttribute.d.ts +13 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleHiddenAttribute.js +25 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleImportTag.d.ts +4 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleImportTag.js +30 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleIncludeTag.d.ts +2 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleIncludeTag.js +30 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleLoopAttribute.d.ts +2 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleLoopAttribute.js +89 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleMLAttribute.d.ts +2 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleMLAttribute.js +33 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleModelAttribute.d.ts +2 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleModelAttribute.js +61 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleOtherAttribute.d.ts +2 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleOtherAttribute.js +35 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSjsEvent.d.ts +11 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSjsEvent.js +72 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSlotAttribute.d.ts +2 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSlotAttribute.js +74 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSpaceAttribute.d.ts +2 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleSpaceAttribute.js +12 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleStyleAttribute.d.ts +2 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/handleStyleAttribute.js +16 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/utils.d.ts +10 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/transformerUtils/utils.js +80 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/utils.d.ts +7 -0
- package/dist/webpack-config/loaders/ml-loader/ml2vue/utils.js +41 -0
- package/dist/webpack-config/loaders/render-entry-loader.d.ts +1 -0
- package/dist/webpack-config/loaders/render-entry-loader.js +50 -0
- package/dist/webpack-config/loaders/service-entry-loader.d.ts +1 -0
- package/dist/webpack-config/loaders/service-entry-loader.js +51 -0
- package/dist/webpack-config/loaders/sjs-loader/frame.d.ts +1 -0
- package/dist/webpack-config/loaders/sjs-loader/frame.js +51 -0
- package/dist/webpack-config/loaders/sjs-loader/index.d.ts +1 -0
- package/dist/webpack-config/loaders/sjs-loader/index.js +93 -0
- package/dist/webpack-config/loaders/utils.d.ts +13 -0
- package/dist/webpack-config/loaders/utils.js +41 -0
- package/dist/webpack-config/loaders/wxss-loader.d.ts +1 -0
- package/dist/webpack-config/loaders/wxss-loader.js +76 -0
- package/dist/webpack-config/plugins/VueLoaderPlugin.d.ts +19 -0
- package/dist/webpack-config/plugins/VueLoaderPlugin.js +205 -0
- package/dist/webpack-config/plugins/XhsMpErrorTransformPlugin.d.ts +8 -0
- package/dist/webpack-config/plugins/XhsMpErrorTransformPlugin.js +40 -0
- package/dist/webpack-config/plugins/XhsMpJsonPlugin.d.ts +36 -0
- package/dist/webpack-config/plugins/XhsMpJsonPlugin.js +71 -0
- package/dist/webpack-config/presets/babel.d.ts +8 -0
- package/dist/webpack-config/presets/babel.js +57 -0
- package/dist/webpack-config/presets/common.d.ts +4 -0
- package/dist/webpack-config/presets/common.js +40 -0
- package/dist/webpack-config/presets/mp/MpEntryPlugin.d.ts +23 -0
- package/dist/webpack-config/presets/mp/MpEntryPlugin.js +87 -0
- package/dist/webpack-config/presets/mp/index.d.ts +4 -0
- package/dist/webpack-config/presets/mp/index.js +48 -0
- package/dist/webpack-config/presets/prod.d.ts +4 -0
- package/dist/webpack-config/presets/prod.js +85 -0
- package/dist/webpack-config/presets/render/ComponentEntryPlugin.d.ts +18 -0
- package/dist/webpack-config/presets/render/ComponentEntryPlugin.js +77 -0
- package/dist/webpack-config/presets/render/RenderChunkPlugin.d.ts +9 -0
- package/dist/webpack-config/presets/render/RenderChunkPlugin.js +65 -0
- package/dist/webpack-config/presets/render/RenderEntryPlugin.d.ts +14 -0
- package/dist/webpack-config/presets/render/RenderEntryPlugin.js +42 -0
- package/dist/webpack-config/presets/render/SjsEntryPlugin.d.ts +31 -0
- package/dist/webpack-config/presets/render/SjsEntryPlugin.js +124 -0
- package/dist/webpack-config/presets/render/index.d.ts +4 -0
- package/dist/webpack-config/presets/render/index.js +99 -0
- package/dist/webpack-config/presets/service/ServiceEntryPlugin.d.ts +8 -0
- package/dist/webpack-config/presets/service/ServiceEntryPlugin.js +36 -0
- package/dist/webpack-config/presets/service/XhsMpServiceChunkPlugin.d.ts +6 -0
- package/dist/webpack-config/presets/service/XhsMpServiceChunkPlugin.js +46 -0
- package/dist/webpack-config/presets/service/XhsResolveLimitPlugin.d.ts +8 -0
- package/dist/webpack-config/presets/service/XhsResolveLimitPlugin.js +65 -0
- package/dist/webpack-config/presets/service/XhsV2AssetsPlugin.d.ts +5 -0
- package/dist/webpack-config/presets/service/XhsV2AssetsPlugin.js +27 -0
- package/dist/webpack-config/presets/service/index.d.ts +4 -0
- package/dist/webpack-config/presets/service/index.js +38 -0
- 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,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,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
|
+
}
|