@dd-code/uni-tools 1.0.12 → 1.0.14
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 +100 -32
- package/dist/cli.js +13 -0
- package/dist/cli.mjs.js +13 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.js +391 -229
- package/dist/index.mjs.js +391 -229
- package/package.json +1 -1
package/dist/index.mjs.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
|
+
import fsExtra from 'fs-extra';
|
|
2
3
|
import fs from 'fs';
|
|
3
4
|
import crypto from 'crypto';
|
|
4
5
|
import chokidar from 'chokidar';
|
|
5
6
|
import { MultiBar, Presets } from 'cli-progress';
|
|
6
7
|
import chalk from 'chalk';
|
|
7
|
-
import
|
|
8
|
+
import 'child_process';
|
|
8
9
|
import WebSocket, { WebSocketServer } from 'ws';
|
|
9
10
|
import express from 'express';
|
|
10
11
|
import http from 'http';
|
|
11
12
|
import cors from 'cors';
|
|
12
|
-
import 'child_process';
|
|
13
13
|
|
|
14
14
|
/******************************************************************************
|
|
15
15
|
Copyright (c) Microsoft Corporation.
|
|
@@ -262,6 +262,22 @@ var createFileWatcher = function (filePath, opt) {
|
|
|
262
262
|
};
|
|
263
263
|
var checkIsBuildInChild = function () { return process.env.MFE_TARGET_DIR === "root"; };
|
|
264
264
|
var checkIsInnerBuild = function () { return process.env.MFE_INNER_BUILD === "true"; };
|
|
265
|
+
var unlinkDeepDirOrFile = function (filePath) {
|
|
266
|
+
try {
|
|
267
|
+
if (fsExtra.pathExistsSync(filePath)) {
|
|
268
|
+
// 同步检查是否存在
|
|
269
|
+
fsExtra.removeSync(filePath); // 同步递归删除
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
catch (err) {
|
|
273
|
+
console.error("删除文件夹失败:", err);
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
var getFilePathWithoutExt = function (filePath) {
|
|
277
|
+
var dirName = path.dirname(filePath);
|
|
278
|
+
var baseName = path.basename(filePath, path.extname(filePath));
|
|
279
|
+
return path.join(dirName, baseName);
|
|
280
|
+
};
|
|
265
281
|
|
|
266
282
|
var UniCdnManager = /** @class */ (function () {
|
|
267
283
|
function UniCdnManager() {
|
|
@@ -403,7 +419,7 @@ var formatCliCommandConfig = function (mode) {
|
|
|
403
419
|
var checkIsRootManifest = function (manifest) {
|
|
404
420
|
return manifest.isRoot || manifest.appCode === ROOT_APP_CODE;
|
|
405
421
|
};
|
|
406
|
-
var WS_PORT =
|
|
422
|
+
var WS_PORT = 3561;
|
|
407
423
|
var WS_PATH = "/__mfe__ws__";
|
|
408
424
|
var HTTP_PATH = "/__mfe__http__";
|
|
409
425
|
var E_WS_TYPE;
|
|
@@ -479,18 +495,6 @@ var getNodeModulesEnvAppCodeFilePath = function (conf, fileName) {
|
|
|
479
495
|
var savePath = getDownloadedFilePath(conf);
|
|
480
496
|
return path.resolve(savePath, fileName);
|
|
481
497
|
};
|
|
482
|
-
/**
|
|
483
|
-
* 获取清单文件 URL 列表
|
|
484
|
-
* @description 根据环境和配置生成所有应用的清单文件 URL
|
|
485
|
-
* @param {string} mode - 环境标识,默认为 'dev'
|
|
486
|
-
* @returns {Array<Object>} 清单 URL 对象数组
|
|
487
|
-
* @returns {string} returns[].url - 清单文件 URL
|
|
488
|
-
* @returns {string} returns[].appCode - 应用代码
|
|
489
|
-
* @returns {string} returns[].code - 项目代码
|
|
490
|
-
* @example
|
|
491
|
-
* const urls = getManifestJsonUrl('prod');
|
|
492
|
-
* // 返回: [{ url: '...', appCode: 'main', code: 'my-project' }]
|
|
493
|
-
*/
|
|
494
498
|
var getManifestJsonUrl = function (mode) { return __awaiter(void 0, void 0, void 0, function () {
|
|
495
499
|
var _a, _b, isRoot, _c, code, apps, mfeJson, configApps, result;
|
|
496
500
|
return __generator(this, function (_d) {
|
|
@@ -512,14 +516,11 @@ var getManifestJsonUrl = function (mode) { return __awaiter(void 0, void 0, void
|
|
|
512
516
|
configApps = __spreadArray(__spreadArray([], configApps, true), [{ appCode: ROOT_APP_CODE }], false);
|
|
513
517
|
_d.label = 4;
|
|
514
518
|
case 4:
|
|
515
|
-
// console.log(JSON, isRoot, "JSON");
|
|
516
|
-
// debugger
|
|
517
|
-
// const configApps = JSON.apps; // isRoot ? JSON.apps : [{ appCode: ROOT_APP_CODE }];
|
|
518
519
|
apps = Array.from(new Set(__spreadArray([], (configApps || []).map(function (i) { return i.appCode; }), true)));
|
|
519
520
|
return [3 /*break*/, 6];
|
|
520
521
|
case 5:
|
|
521
522
|
_d.sent();
|
|
522
|
-
apps = [];
|
|
523
|
+
apps = [];
|
|
523
524
|
return [3 /*break*/, 6];
|
|
524
525
|
case 6:
|
|
525
526
|
result = apps.map(function (appCode) {
|
|
@@ -561,24 +562,6 @@ var downloadManifestJson = function (urls) { return __awaiter(void 0, void 0, vo
|
|
|
561
562
|
}
|
|
562
563
|
});
|
|
563
564
|
}); };
|
|
564
|
-
/**
|
|
565
|
-
* 下载项目文件
|
|
566
|
-
* @description 根据清单列表并行下载所有项目文件到指定目录
|
|
567
|
-
* @param {Array<Object>} manifestList - 清单数据数组
|
|
568
|
-
* @param {string} manifestList[].env - 环境标识
|
|
569
|
-
* @returns {Promise<void>} 下载完成
|
|
570
|
-
* @example
|
|
571
|
-
* await downloadProjectFiles([
|
|
572
|
-
* { env: 'prod', files: [...] },
|
|
573
|
-
* { env: 'test', files: [...] }
|
|
574
|
-
* ]);
|
|
575
|
-
*/
|
|
576
|
-
/**
|
|
577
|
-
* 根据manifest文件下载所有相关文件
|
|
578
|
-
* 用于微前端架构中的模块文件下载
|
|
579
|
-
* @param {Object} manifestJson - manifest文件内容
|
|
580
|
-
* @param {string} outDir - 输出目录
|
|
581
|
-
*/
|
|
582
565
|
function downloadFilesByManifestJson(manifestJson, outDir, onDownload) {
|
|
583
566
|
return __awaiter(this, void 0, void 0, function () {
|
|
584
567
|
var cdn, appCode, publicPath, files, _a, _b, _c, _i, i, file, fileUrl, fileName, downloadUrl, content;
|
|
@@ -603,7 +586,6 @@ function downloadFilesByManifestJson(manifestJson, outDir, onDownload) {
|
|
|
603
586
|
return [4 /*yield*/, fetchFileByPath(downloadUrl)];
|
|
604
587
|
case 2:
|
|
605
588
|
content = _d.sent();
|
|
606
|
-
// console.log(path.join(outDir, appCode || "", fileName), 'path.join(outDir, appCode || "", fileName)');
|
|
607
589
|
writeFiles(path.join(outDir, appCode || "", fileName), content);
|
|
608
590
|
onDownload && onDownload(Number(i), file.length);
|
|
609
591
|
_d.label = 3;
|
|
@@ -672,31 +654,20 @@ var createManifestManager = function () {
|
|
|
672
654
|
return row;
|
|
673
655
|
},
|
|
674
656
|
setFiles: function (files) {
|
|
675
|
-
// const files = all.map((i) => {
|
|
676
|
-
// const filePath = path.resolve(outDir, i);
|
|
677
|
-
// const content = fs.readFileSync(filePath, "utf-8");
|
|
678
|
-
// const contentHash = generateSHA256(content).slice(0, 8);
|
|
679
|
-
// const dirName = path.dirname(i);
|
|
680
|
-
// const fileName = path.basename(i)
|
|
681
|
-
// const suffixName = dirName === "." ? "" : `${dirName}/`;
|
|
682
|
-
// return {
|
|
683
|
-
// fileName: i,
|
|
684
|
-
// fileUrl: `${suffixName}${contentHash}_${fileName}`,
|
|
685
|
-
// };
|
|
686
|
-
// });
|
|
687
657
|
row.files = files;
|
|
688
658
|
},
|
|
689
659
|
setPagesJson: function (pagesJson) {
|
|
690
660
|
row.pagesJson = pagesJson;
|
|
691
661
|
},
|
|
692
662
|
saveFile: function (filePath) {
|
|
693
|
-
// const files = row.files.filter((i) => i.fileName !== MANIFEST_NAME);
|
|
694
663
|
var newManifest = __assign(__assign({}, row), { isServe: undefined });
|
|
695
664
|
newManifest.hash = generateSHA256(JSON.stringify(__assign({}, newManifest)));
|
|
696
665
|
writeFiles(filePath, JSON.stringify(newManifest, null, 2));
|
|
697
666
|
},
|
|
667
|
+
setExposes: function (exposes) {
|
|
668
|
+
row.exposes = exposes || {};
|
|
669
|
+
},
|
|
698
670
|
setEnv: function (mode) {
|
|
699
|
-
// const env = loadViteConfig(mode);
|
|
700
671
|
var env = formatCliCommandConfig(mode);
|
|
701
672
|
var mfeJson = getMfeJson();
|
|
702
673
|
row.cdn = env.cdn;
|
|
@@ -715,13 +686,49 @@ var createManifestManager = function () {
|
|
|
715
686
|
setDependencies: function (list) {
|
|
716
687
|
this.dependencies = list;
|
|
717
688
|
},
|
|
718
|
-
// getFullManifestJsonList() {
|
|
719
|
-
// const files = import.meta.globEager("./**/*.json");
|
|
720
|
-
// console.log(files);
|
|
721
|
-
// // return [...this.dependencies, this.value];
|
|
722
|
-
// },
|
|
723
689
|
};
|
|
724
690
|
};
|
|
691
|
+
var getRootMainManifestJson = function (code, mode) { return __awaiter(void 0, void 0, void 0, function () {
|
|
692
|
+
var pageManifest, nodeModulesManifest, cdnUrl, manifestJson;
|
|
693
|
+
return __generator(this, function (_b) {
|
|
694
|
+
switch (_b.label) {
|
|
695
|
+
case 0:
|
|
696
|
+
try {
|
|
697
|
+
pageManifest = uniReadFile(path.join(process.env.UNI_OUTPUT_DIR, MANIFEST_NAME));
|
|
698
|
+
if (Object.keys(pageManifest).length !== 0) {
|
|
699
|
+
return [2 /*return*/, pageManifest];
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
catch (_c) { }
|
|
703
|
+
try {
|
|
704
|
+
nodeModulesManifest = uniReadFile(path.join(SAVE_CDN_FILE_PATH, mode, ROOT_APP_CODE, MANIFEST_NAME));
|
|
705
|
+
if (Object.keys(nodeModulesManifest).length !== 0) {
|
|
706
|
+
return [2 /*return*/, nodeModulesManifest];
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
catch (_d) { }
|
|
710
|
+
_b.label = 1;
|
|
711
|
+
case 1:
|
|
712
|
+
_b.trys.push([1, 3, , 4]);
|
|
713
|
+
cdnUrl = cdn.getManifestUrl({
|
|
714
|
+
code: code,
|
|
715
|
+
appCode: ROOT_APP_CODE,
|
|
716
|
+
mode: mode,
|
|
717
|
+
});
|
|
718
|
+
return [4 /*yield*/, fetchFileByPath(cdnUrl)];
|
|
719
|
+
case 2:
|
|
720
|
+
manifestJson = _b.sent();
|
|
721
|
+
if (Object.keys(manifestJson).length !== 0) {
|
|
722
|
+
return [2 /*return*/, manifestJson];
|
|
723
|
+
}
|
|
724
|
+
return [3 /*break*/, 4];
|
|
725
|
+
case 3:
|
|
726
|
+
_b.sent();
|
|
727
|
+
return [3 /*break*/, 4];
|
|
728
|
+
case 4: return [2 /*return*/, { exposes: {} }];
|
|
729
|
+
}
|
|
730
|
+
});
|
|
731
|
+
}); };
|
|
725
732
|
|
|
726
733
|
var num = 5;
|
|
727
734
|
var getMainProcess = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -810,7 +817,6 @@ var addUniCopyPluginHook = function (_a) {
|
|
|
810
817
|
var before = _a.before, after = _a.after;
|
|
811
818
|
var FileWatcher = require("@dcloudio/uni-cli-shared/dist/watcher").FileWatcher;
|
|
812
819
|
var originalCopy = FileWatcher.prototype.copy;
|
|
813
|
-
// Hook copy方法
|
|
814
820
|
FileWatcher.prototype.copy = function (from) {
|
|
815
821
|
var to = this.to(from);
|
|
816
822
|
var fromPath = this.from(from);
|
|
@@ -828,7 +834,23 @@ var copyFilesByTargetPath = function (sourcePath, targetPath) {
|
|
|
828
834
|
fsExtra.ensureDirSync(targetDir);
|
|
829
835
|
}
|
|
830
836
|
catch (err) { }
|
|
831
|
-
|
|
837
|
+
var shouldSkip = function () {
|
|
838
|
+
try {
|
|
839
|
+
var s = fs.statSync(sourcePath);
|
|
840
|
+
var t = fs.statSync(targetPath);
|
|
841
|
+
if (s.isDirectory() || t.isDirectory())
|
|
842
|
+
return false;
|
|
843
|
+
var sb = fs.readFileSync(sourcePath);
|
|
844
|
+
var tb = fs.readFileSync(targetPath);
|
|
845
|
+
return sb.length === tb.length && sb.equals(tb);
|
|
846
|
+
}
|
|
847
|
+
catch (_a) {
|
|
848
|
+
return false;
|
|
849
|
+
}
|
|
850
|
+
};
|
|
851
|
+
if (!shouldSkip()) {
|
|
852
|
+
fsExtra.copySync(sourcePath, targetPath, { overwrite: true });
|
|
853
|
+
}
|
|
832
854
|
};
|
|
833
855
|
|
|
834
856
|
var downloadFullApps = function (manifestJson) { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -913,24 +935,18 @@ var getPagesJson = function (jsonFile, isFormat) {
|
|
|
913
935
|
var platform = process.env.UNI_PLATFORM;
|
|
914
936
|
initPreContext(platform);
|
|
915
937
|
var context = getPreVueContext();
|
|
916
|
-
// 使用uni的预处理器处理pages.json
|
|
917
938
|
var processedJsonStr = preprocess(jsonFile, context, { type: "js" });
|
|
918
|
-
// 解析为JSON对象
|
|
919
939
|
var pagesConfig = eval("(".concat(processedJsonStr, ")"));
|
|
920
|
-
// 针对微信小程序平台,处理特有的配置项
|
|
921
940
|
if (isFormat && platform === "mp-weixin") {
|
|
922
941
|
return transformToWeixinFormat(pagesConfig);
|
|
923
942
|
}
|
|
924
943
|
return pagesConfig;
|
|
925
944
|
};
|
|
926
|
-
// 将uni-app的pages.json转换为微信小程序格式
|
|
927
945
|
var transformToWeixinFormat = function (uniPagesConfig) {
|
|
928
946
|
var _a;
|
|
929
947
|
var weixinConfig = __assign({ pages: [], window: {}, tabBar: null, subPackages: [], usingComponents: {} }, uniPagesConfig);
|
|
930
|
-
// 处理globalStyle -> window
|
|
931
948
|
if (uniPagesConfig.globalStyle) {
|
|
932
949
|
var globalStyle = uniPagesConfig.globalStyle;
|
|
933
|
-
// 基础窗口配置
|
|
934
950
|
weixinConfig.window = {
|
|
935
951
|
navigationBarBackgroundColor: globalStyle.navigationBarBackgroundColor || "#000000",
|
|
936
952
|
navigationBarTextStyle: globalStyle.navigationBarTextStyle || "white",
|
|
@@ -940,30 +956,25 @@ var transformToWeixinFormat = function (uniPagesConfig) {
|
|
|
940
956
|
enablePullDownRefresh: globalStyle.enablePullDownRefresh || false,
|
|
941
957
|
onReachBottomDistance: globalStyle.onReachBottomDistance || 50,
|
|
942
958
|
};
|
|
943
|
-
// 处理微信小程序特有配置
|
|
944
959
|
if (globalStyle.pageOrientation) {
|
|
945
960
|
weixinConfig.window.pageOrientation = globalStyle.pageOrientation;
|
|
946
961
|
}
|
|
947
962
|
if (globalStyle.renderingMode) {
|
|
948
963
|
weixinConfig.window.renderingMode = globalStyle.renderingMode;
|
|
949
964
|
}
|
|
950
|
-
// 处理usingComponents
|
|
951
965
|
if (globalStyle.usingComponents) {
|
|
952
966
|
weixinConfig.usingComponents = globalStyle.usingComponents;
|
|
953
967
|
}
|
|
954
|
-
// 处理微信小程序平台特定配置
|
|
955
968
|
if (globalStyle["mp-weixin"]) {
|
|
956
969
|
Object.assign(weixinConfig.window, globalStyle["mp-weixin"]);
|
|
957
970
|
}
|
|
958
971
|
}
|
|
959
|
-
// 处理pages配置
|
|
960
972
|
if (uniPagesConfig.pages) {
|
|
961
973
|
weixinConfig.pages = uniPagesConfig.pages.map(function (page) {
|
|
962
974
|
var weixinPage = page.path;
|
|
963
975
|
return weixinPage;
|
|
964
976
|
});
|
|
965
977
|
}
|
|
966
|
-
// 处理tabBar配置
|
|
967
978
|
if (uniPagesConfig.tabBar) {
|
|
968
979
|
weixinConfig.tabBar = __assign(__assign({}, uniPagesConfig.tabBar), { list: (_a = uniPagesConfig.tabBar.list) === null || _a === void 0 ? void 0 : _a.map(function (item) { return ({
|
|
969
980
|
pagePath: item.pagePath,
|
|
@@ -972,7 +983,6 @@ var transformToWeixinFormat = function (uniPagesConfig) {
|
|
|
972
983
|
selectedIconPath: item.selectedIconPath,
|
|
973
984
|
}); }) });
|
|
974
985
|
}
|
|
975
|
-
// 处理分包配置
|
|
976
986
|
if (uniPagesConfig.subPackages) {
|
|
977
987
|
weixinConfig.subPackages = uniPagesConfig.subPackages.map(function (subPackage) {
|
|
978
988
|
var _a;
|
|
@@ -982,11 +992,9 @@ var transformToWeixinFormat = function (uniPagesConfig) {
|
|
|
982
992
|
});
|
|
983
993
|
});
|
|
984
994
|
}
|
|
985
|
-
// 处理预下载规则
|
|
986
995
|
if (uniPagesConfig.preloadRule) {
|
|
987
996
|
weixinConfig.preloadRule = uniPagesConfig.preloadRule;
|
|
988
997
|
}
|
|
989
|
-
// 移除uni-app特有的配置项
|
|
990
998
|
delete weixinConfig.globalStyle;
|
|
991
999
|
delete weixinConfig.easycom;
|
|
992
1000
|
delete weixinConfig.condition;
|
|
@@ -1112,10 +1120,93 @@ var createManifestPlugin = function (manifestJson) {
|
|
|
1112
1120
|
};
|
|
1113
1121
|
};
|
|
1114
1122
|
|
|
1123
|
+
var renderPagesJsonByArray = function (appPages, pageJson) {
|
|
1124
|
+
var _loop_1 = function (app) {
|
|
1125
|
+
var _a = getPagesJson(JSON.stringify((app === null || app === void 0 ? void 0 : app.pagesJson) || {}), true).pages, pages = _a === void 0 ? [] : _a;
|
|
1126
|
+
var currentTemp = {
|
|
1127
|
+
root: app.appCode,
|
|
1128
|
+
pages: __spreadArray([], pages, true),
|
|
1129
|
+
};
|
|
1130
|
+
pageJson.subPackages = pageJson.subPackages.filter(function (i) { return i.root !== currentTemp.root; });
|
|
1131
|
+
pageJson.subPackages.push(currentTemp);
|
|
1132
|
+
pageJson.subPackages = pageJson.subPackages.filter(function (i) { return i.pages.length; });
|
|
1133
|
+
};
|
|
1134
|
+
for (var _i = 0, appPages_1 = appPages; _i < appPages_1.length; _i++) {
|
|
1135
|
+
var app = appPages_1[_i];
|
|
1136
|
+
_loop_1(app);
|
|
1137
|
+
}
|
|
1138
|
+
if (!pageJson.tabBar) {
|
|
1139
|
+
delete pageJson.tabBar;
|
|
1140
|
+
}
|
|
1141
|
+
return pageJson;
|
|
1142
|
+
};
|
|
1143
|
+
var genreFullMainAppJsonByManifestList = function (appJson, manifestList) {
|
|
1144
|
+
return renderPagesJsonByArray(manifestList, appJson);
|
|
1145
|
+
};
|
|
1146
|
+
var genreNewAppJson = function (outputPageJsonPath, appJson, manifestList) {
|
|
1147
|
+
var newAppJSon = genreFullMainAppJsonByManifestList(__assign({ subPackages: [] }, appJson), manifestList);
|
|
1148
|
+
var old = uniFsReadJSONFile(outputPageJsonPath) || {};
|
|
1149
|
+
var nextStr = JSON.stringify(newAppJSon);
|
|
1150
|
+
var oldStr = JSON.stringify(old);
|
|
1151
|
+
if (nextStr !== oldStr) {
|
|
1152
|
+
writeFiles(outputPageJsonPath, newAppJSon);
|
|
1153
|
+
}
|
|
1154
|
+
};
|
|
1155
|
+
|
|
1156
|
+
var getAppsManifestList = function (mode) {
|
|
1157
|
+
var _a;
|
|
1158
|
+
var manifest = formatCliCommandConfig(mode);
|
|
1159
|
+
if (!manifest.isRoot) {
|
|
1160
|
+
return [];
|
|
1161
|
+
}
|
|
1162
|
+
if (manifest.serve) {
|
|
1163
|
+
return [];
|
|
1164
|
+
}
|
|
1165
|
+
var mfeJson = getMfeJson();
|
|
1166
|
+
if (!((_a = mfeJson === null || mfeJson === void 0 ? void 0 : mfeJson.apps) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
1167
|
+
throw new Error("mfeJson.apps is empty");
|
|
1168
|
+
}
|
|
1169
|
+
var apps = ((mfeJson === null || mfeJson === void 0 ? void 0 : mfeJson.apps) || []).map(function (_a) {
|
|
1170
|
+
var appCode = _a.appCode;
|
|
1171
|
+
return {
|
|
1172
|
+
appCode: appCode,
|
|
1173
|
+
filePath: "".concat(process.env.UNI_OUTPUT_DIR, "/").concat(appCode, "/").concat(MANIFEST_NAME),
|
|
1174
|
+
};
|
|
1175
|
+
});
|
|
1176
|
+
return apps;
|
|
1177
|
+
};
|
|
1178
|
+
var startDistWatcher = function (mainPwd, onReady, onChange) {
|
|
1179
|
+
var root = process.env.MFE_SOURCE_OUTPUT_DIR;
|
|
1180
|
+
if (!root)
|
|
1181
|
+
return;
|
|
1182
|
+
var filePath = path.resolve(root);
|
|
1183
|
+
checkAndgenreDir(filePath);
|
|
1184
|
+
var parentDir = path.dirname(filePath);
|
|
1185
|
+
var watcher = createFileWatcher(parentDir);
|
|
1186
|
+
var isTargetFile = function (p) {
|
|
1187
|
+
return p.startsWith(filePath + path.sep) || p === filePath;
|
|
1188
|
+
};
|
|
1189
|
+
watcher.on("ready", onReady);
|
|
1190
|
+
["add", "change", "unlink"].forEach(function (evt) {
|
|
1191
|
+
// @ts-ignore
|
|
1192
|
+
watcher.on(evt, function (p) {
|
|
1193
|
+
if (!isTargetFile(p))
|
|
1194
|
+
return;
|
|
1195
|
+
var rel = path.relative(filePath, p);
|
|
1196
|
+
var sourcePath = p;
|
|
1197
|
+
var targetPath = path.join(mainPwd, rel);
|
|
1198
|
+
if (["add", "change"].includes(evt)) {
|
|
1199
|
+
copyFilesByTargetPath(sourcePath, targetPath);
|
|
1200
|
+
}
|
|
1201
|
+
onChange === null || onChange === void 0 ? void 0 : onChange({ type: evt, p: p, sourcePath: sourcePath, targetPath: targetPath });
|
|
1202
|
+
});
|
|
1203
|
+
});
|
|
1204
|
+
};
|
|
1205
|
+
|
|
1115
1206
|
var app = null;
|
|
1116
1207
|
var createHttpServer = function () {
|
|
1117
1208
|
if (app)
|
|
1118
|
-
return app;
|
|
1209
|
+
return { server: app, start: function () { } };
|
|
1119
1210
|
app = express();
|
|
1120
1211
|
var server = http.createServer(app);
|
|
1121
1212
|
app.get("".concat(HTTP_PATH, "/root-path"), function (req, res) {
|
|
@@ -1287,37 +1378,6 @@ var WsClientServer = /** @class */ (function () {
|
|
|
1287
1378
|
// export const mfeServer = new WsServer();
|
|
1288
1379
|
// export const mfeClientServer = new WsClientServer();
|
|
1289
1380
|
|
|
1290
|
-
// export const addRunningAppToSave = (appCode, filePath: string) => {
|
|
1291
|
-
// const content = uniReadFile(SERVE_MPWEIXIN_MANIFEST);
|
|
1292
|
-
// if (content) {
|
|
1293
|
-
// content[appCode] = filePath;
|
|
1294
|
-
// }
|
|
1295
|
-
// writeFiles(SERVE_MPWEIXIN_MANIFEST, JSON.stringify(content, null, 2));
|
|
1296
|
-
// };
|
|
1297
|
-
var getAppsManifestList = function (mode) {
|
|
1298
|
-
var _a;
|
|
1299
|
-
var manifest = formatCliCommandConfig(mode);
|
|
1300
|
-
if (!manifest.isRoot) {
|
|
1301
|
-
return [];
|
|
1302
|
-
}
|
|
1303
|
-
if (manifest.serve) {
|
|
1304
|
-
return [];
|
|
1305
|
-
}
|
|
1306
|
-
var mfeJson = getMfeJson();
|
|
1307
|
-
if (!((_a = mfeJson === null || mfeJson === void 0 ? void 0 : mfeJson.apps) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
1308
|
-
throw new Error("mfeJson.apps is empty");
|
|
1309
|
-
}
|
|
1310
|
-
var apps = ((mfeJson === null || mfeJson === void 0 ? void 0 : mfeJson.apps) || []).map(function (_a) {
|
|
1311
|
-
var appCode = _a.appCode;
|
|
1312
|
-
return {
|
|
1313
|
-
appCode: appCode,
|
|
1314
|
-
filePath: "".concat(process.env.UNI_OUTPUT_DIR, "/").concat(appCode, "/").concat(MANIFEST_NAME),
|
|
1315
|
-
};
|
|
1316
|
-
});
|
|
1317
|
-
// console.log(apps);
|
|
1318
|
-
return apps;
|
|
1319
|
-
};
|
|
1320
|
-
|
|
1321
1381
|
var filterManifestJsonListAndMainPageJson = function (manifestJsonList) {
|
|
1322
1382
|
var outputPageJsonPath = getMainAppJsonPath();
|
|
1323
1383
|
return {
|
|
@@ -1325,71 +1385,7 @@ var filterManifestJsonListAndMainPageJson = function (manifestJsonList) {
|
|
|
1325
1385
|
manifestList: manifestJsonList.filter(function (item) { return !checkIsRootManifest(item); }),
|
|
1326
1386
|
};
|
|
1327
1387
|
};
|
|
1328
|
-
var
|
|
1329
|
-
var _loop_1 = function (app) {
|
|
1330
|
-
var _a = getPagesJson(JSON.stringify((app === null || app === void 0 ? void 0 : app.pagesJson) || {}), true).pages, pages = _a === void 0 ? [] : _a;
|
|
1331
|
-
var currentTemp = {
|
|
1332
|
-
root: app.appCode,
|
|
1333
|
-
pages: __spreadArray([], pages, true),
|
|
1334
|
-
};
|
|
1335
|
-
pageJson.subPackages = pageJson.subPackages.filter(function (i) { return i.root !== currentTemp.root; });
|
|
1336
|
-
pageJson.subPackages.push(currentTemp);
|
|
1337
|
-
pageJson.subPackages = pageJson.subPackages.filter(function (i) { return i.pages.length; });
|
|
1338
|
-
};
|
|
1339
|
-
for (var _i = 0, appPages_1 = appPages; _i < appPages_1.length; _i++) {
|
|
1340
|
-
var app = appPages_1[_i];
|
|
1341
|
-
_loop_1(app);
|
|
1342
|
-
}
|
|
1343
|
-
if (!pageJson.tabBar) {
|
|
1344
|
-
delete pageJson.tabBar;
|
|
1345
|
-
}
|
|
1346
|
-
return pageJson;
|
|
1347
|
-
};
|
|
1348
|
-
var genreFullMainAppJsonByManifestList = function (appJson, manifestList) {
|
|
1349
|
-
return renderPagesJsonByArray(manifestList, appJson);
|
|
1350
|
-
};
|
|
1351
|
-
var DistWatcher = /** @class */ (function () {
|
|
1352
|
-
function DistWatcher() {
|
|
1353
|
-
}
|
|
1354
|
-
DistWatcher.prototype.start = function (mainPwd, onReady, onChange) {
|
|
1355
|
-
var root = process.env.MFE_SOURCE_OUTPUT_DIR;
|
|
1356
|
-
if (!root)
|
|
1357
|
-
return;
|
|
1358
|
-
var filePath = path.resolve(root);
|
|
1359
|
-
checkAndgenreDir(filePath);
|
|
1360
|
-
var parentDir = path.dirname(filePath);
|
|
1361
|
-
var watcher = createFileWatcher(parentDir);
|
|
1362
|
-
var isTargetFile = function (p) {
|
|
1363
|
-
return p.startsWith(filePath + path.sep) || p === filePath;
|
|
1364
|
-
};
|
|
1365
|
-
watcher.on("ready", onReady);
|
|
1366
|
-
["add", "change", "unlink"].forEach(function (evt) {
|
|
1367
|
-
// @ts-ignore
|
|
1368
|
-
watcher.on(evt, function (p) {
|
|
1369
|
-
if (!isTargetFile(p))
|
|
1370
|
-
return;
|
|
1371
|
-
var rel = path.relative(filePath, p);
|
|
1372
|
-
var sourcePath = p;
|
|
1373
|
-
var targetPath = path.join(mainPwd, rel);
|
|
1374
|
-
if (["add", "change"].includes(evt)) {
|
|
1375
|
-
copyFilesByTargetPath(sourcePath, targetPath);
|
|
1376
|
-
}
|
|
1377
|
-
onChange === null || onChange === void 0 ? void 0 : onChange({ type: evt, p: p, sourcePath: sourcePath, targetPath: targetPath });
|
|
1378
|
-
});
|
|
1379
|
-
});
|
|
1380
|
-
};
|
|
1381
|
-
return DistWatcher;
|
|
1382
|
-
}());
|
|
1383
|
-
var genreNewAppJson = function (outputPageJsonPath, appJson, manifestList) {
|
|
1384
|
-
try {
|
|
1385
|
-
var newAppJSon = genreFullMainAppJsonByManifestList(__assign({ subPackages: [] }, appJson), manifestList);
|
|
1386
|
-
writeFiles(outputPageJsonPath, newAppJSon);
|
|
1387
|
-
}
|
|
1388
|
-
catch (error) {
|
|
1389
|
-
console.error("[AppJSON] Genre failed:", error);
|
|
1390
|
-
}
|
|
1391
|
-
};
|
|
1392
|
-
var createMainAppServer = function (manifestJson) {
|
|
1388
|
+
var createMainAppServer = function () {
|
|
1393
1389
|
var mfeServer = WsServer.getInstance(function (opt) {
|
|
1394
1390
|
var type = opt.type, data = opt.data;
|
|
1395
1391
|
if (type === E_WS_TYPE.CHANGE) {
|
|
@@ -1418,17 +1414,36 @@ var createMainAppClient = function (manifestJson, onInit) {
|
|
|
1418
1414
|
return client;
|
|
1419
1415
|
};
|
|
1420
1416
|
var createMainAppPlugin = function (manifestJson) {
|
|
1421
|
-
var
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1417
|
+
var state = {
|
|
1418
|
+
mainPwd: "",
|
|
1419
|
+
isWatcherReady: false,
|
|
1420
|
+
mfeClientServer: undefined,
|
|
1421
|
+
fn: null,
|
|
1422
|
+
};
|
|
1425
1423
|
var isBuild = function () { return process.env.MFE_BUILD_MODE === EBuildMode.BUILD; };
|
|
1426
1424
|
var isServe = function () { return manifestJson.value.isServe; };
|
|
1427
1425
|
var isRoot = function () { return manifestJson.value.isRoot; };
|
|
1428
|
-
var
|
|
1429
|
-
if (
|
|
1430
|
-
return
|
|
1431
|
-
|
|
1426
|
+
var initSync = function () {
|
|
1427
|
+
if (state.isWatcherReady)
|
|
1428
|
+
return;
|
|
1429
|
+
startDistWatcher(state.mainPwd, function () {
|
|
1430
|
+
state.isWatcherReady = true;
|
|
1431
|
+
}, function (change) {
|
|
1432
|
+
state.fn = function () {
|
|
1433
|
+
return state.mfeClientServer.sendMessage(E_WS_TYPE.CHANGE, __assign(__assign({}, change), { appCode: manifestJson.value.appCode }));
|
|
1434
|
+
};
|
|
1435
|
+
});
|
|
1436
|
+
};
|
|
1437
|
+
var copyAppDistModule = function (_a) {
|
|
1438
|
+
var pwd = _a.pwd;
|
|
1439
|
+
if (!process.env.MFE_SOURCE_OUTPUT_DIR) {
|
|
1440
|
+
console.error("[Plugin] MFE_SOURCE_OUTPUT_DIR not defined");
|
|
1441
|
+
return;
|
|
1442
|
+
}
|
|
1443
|
+
state.mainPwd = path.join(pwd, manifestJson.value.appCode);
|
|
1444
|
+
var targetPath = state.mainPwd;
|
|
1445
|
+
var sourcePath = process.env.MFE_SOURCE_OUTPUT_DIR;
|
|
1446
|
+
copyFilesByTargetPath(sourcePath, targetPath);
|
|
1432
1447
|
};
|
|
1433
1448
|
var watchFile = function () {
|
|
1434
1449
|
var allManifest = getAppsManifestList(manifestJson.value.mode);
|
|
@@ -1441,70 +1456,53 @@ var createMainAppPlugin = function (manifestJson) {
|
|
|
1441
1456
|
genreNewAppJson(outputPageJsonPath, mainAppJson, [manifestJson]);
|
|
1442
1457
|
});
|
|
1443
1458
|
};
|
|
1444
|
-
var
|
|
1445
|
-
var serverPlugin = {
|
|
1459
|
+
var createServePlugin = function () { return ({
|
|
1446
1460
|
name: "@dd-code:main-app:serve",
|
|
1447
1461
|
config: function () {
|
|
1448
1462
|
return __awaiter(this, void 0, void 0, function () {
|
|
1449
|
-
var
|
|
1450
|
-
return __generator(this, function (
|
|
1451
|
-
|
|
1452
|
-
if (isBuild())
|
|
1453
|
-
return [2 /*return*/];
|
|
1454
|
-
if (!isServe) {
|
|
1455
|
-
if (!isBuild() && isRoot()) {
|
|
1456
|
-
_a = createHttpServer(), _a.server, start = _a.start;
|
|
1457
|
-
start();
|
|
1458
|
-
}
|
|
1463
|
+
var start;
|
|
1464
|
+
return __generator(this, function (_a) {
|
|
1465
|
+
if (isBuild()) {
|
|
1459
1466
|
return [2 /*return*/];
|
|
1460
1467
|
}
|
|
1461
1468
|
if (isRoot()) {
|
|
1469
|
+
if (!isServe()) {
|
|
1470
|
+
start = createHttpServer().start;
|
|
1471
|
+
start();
|
|
1472
|
+
return [2 /*return*/];
|
|
1473
|
+
}
|
|
1462
1474
|
createMainAppServer();
|
|
1475
|
+
// const subs = findLocalSubApps();
|
|
1476
|
+
// if (subs.length) {
|
|
1477
|
+
// startLocalSubApps(subs, "mp-weixin", manifestJson.value.mode);
|
|
1478
|
+
// }
|
|
1463
1479
|
}
|
|
1464
1480
|
else {
|
|
1465
|
-
mfeClientServer = createMainAppClient(manifestJson, function (data) {
|
|
1466
|
-
|
|
1481
|
+
state.mfeClientServer = createMainAppClient(manifestJson, function (data) {
|
|
1482
|
+
copyAppDistModule(data);
|
|
1467
1483
|
});
|
|
1468
1484
|
}
|
|
1469
1485
|
return [2 /*return*/];
|
|
1470
1486
|
});
|
|
1471
1487
|
});
|
|
1472
1488
|
},
|
|
1473
|
-
|
|
1474
|
-
var isServe = isStartServer();
|
|
1475
|
-
if (!isServe)
|
|
1476
|
-
return;
|
|
1477
|
-
if (!isRoot()) {
|
|
1478
|
-
serverPlugin.initWatchChange();
|
|
1479
|
-
fn === null || fn === void 0 ? void 0 : fn();
|
|
1480
|
-
fn = null;
|
|
1481
|
-
}
|
|
1482
|
-
},
|
|
1483
|
-
initWatchChange: function () {
|
|
1484
|
-
if (isWatcherReady)
|
|
1485
|
-
return;
|
|
1486
|
-
distWatcher.start(mainPwd, function () {
|
|
1487
|
-
isWatcherReady = true;
|
|
1488
|
-
}, function (change) {
|
|
1489
|
-
fn = function () {
|
|
1490
|
-
return mfeClientServer.sendMessage(E_WS_TYPE.CHANGE, __assign(__assign({}, change), { appCode: manifestJson.value.appCode }));
|
|
1491
|
-
};
|
|
1492
|
-
});
|
|
1493
|
-
},
|
|
1494
|
-
copyAppDistModule: function (_a) {
|
|
1495
|
-
var pwd = _a.pwd;
|
|
1496
|
-
if (!process.env.MFE_SOURCE_OUTPUT_DIR) {
|
|
1497
|
-
console.error("[Plugin] MFE_SOURCE_OUTPUT_DIR not defined");
|
|
1498
|
-
return;
|
|
1499
|
-
}
|
|
1500
|
-
mainPwd = path.join(pwd, manifestJson.value.appCode);
|
|
1501
|
-
var targetPath = mainPwd;
|
|
1502
|
-
var sourcePath = process.env.MFE_SOURCE_OUTPUT_DIR;
|
|
1503
|
-
copyFilesByTargetPath(sourcePath, targetPath);
|
|
1504
|
-
},
|
|
1505
|
-
};
|
|
1489
|
+
}); };
|
|
1506
1490
|
return [
|
|
1507
|
-
|
|
1491
|
+
createServePlugin(),
|
|
1492
|
+
{
|
|
1493
|
+
name: "@dd-code:main-app:sync",
|
|
1494
|
+
closeBundle: function () {
|
|
1495
|
+
var _a;
|
|
1496
|
+
var start = isServe();
|
|
1497
|
+
if (!start || isBuild())
|
|
1498
|
+
return;
|
|
1499
|
+
if (isRoot())
|
|
1500
|
+
return;
|
|
1501
|
+
initSync();
|
|
1502
|
+
(_a = state.fn) === null || _a === void 0 ? void 0 : _a.call(state);
|
|
1503
|
+
state.fn = null;
|
|
1504
|
+
},
|
|
1505
|
+
},
|
|
1508
1506
|
{
|
|
1509
1507
|
name: "@dd-code:main-app:watch",
|
|
1510
1508
|
closeBundle: function () {
|
|
@@ -1516,7 +1514,6 @@ var createMainAppPlugin = function (manifestJson) {
|
|
|
1516
1514
|
return [2 /*return*/];
|
|
1517
1515
|
if (!checkIsBuildInChild())
|
|
1518
1516
|
return [2 /*return*/];
|
|
1519
|
-
// if (!isServe) return;
|
|
1520
1517
|
watchFile === null || watchFile === void 0 ? void 0 : watchFile();
|
|
1521
1518
|
watchFile = null;
|
|
1522
1519
|
return [2 /*return*/];
|
|
@@ -1550,8 +1547,170 @@ var createMainAppPlugin = function (manifestJson) {
|
|
|
1550
1547
|
];
|
|
1551
1548
|
};
|
|
1552
1549
|
|
|
1550
|
+
var buildName = "mfe_runtime/__mfe_{template}_runtime__.js";
|
|
1551
|
+
var RUNTIME_NAME = "@dd-code/runtime";
|
|
1552
|
+
// const runtimeDir = 'mfe_runtime'
|
|
1553
|
+
var RUNTIME_NAME_REGEXP = new RegExp(RUNTIME_NAME + "(/.*)?");
|
|
1554
|
+
var renderRuntimeCode = function (moduleExpose, appCode) {
|
|
1555
|
+
var deepPath = path.relative(path.join(appCode, path.dirname(buildName)), ".");
|
|
1556
|
+
var resultCode = "";
|
|
1557
|
+
var _a = moduleExpose || {}, _b = _a.exports, exportName = _b === void 0 ? [] : _b, filePath = _a.path;
|
|
1558
|
+
exportName.forEach(function (item) {
|
|
1559
|
+
resultCode += "export const {".concat(item, "} = require('").concat(deepPath, "/").concat(filePath, "');");
|
|
1560
|
+
});
|
|
1561
|
+
return resultCode;
|
|
1562
|
+
};
|
|
1563
|
+
var createExposesPlugin = function (options, currentManifestJson) {
|
|
1564
|
+
if (options === void 0) { options = {}; }
|
|
1565
|
+
options.exposes = options.exposes || {};
|
|
1566
|
+
var mainAppExposeCode = {};
|
|
1567
|
+
return [
|
|
1568
|
+
{
|
|
1569
|
+
name: "@chagee:uni-exposes",
|
|
1570
|
+
enforce: "post",
|
|
1571
|
+
configResolved: function (config) {
|
|
1572
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
1573
|
+
var manifestJson;
|
|
1574
|
+
return __generator(this, function (_a) {
|
|
1575
|
+
switch (_a.label) {
|
|
1576
|
+
case 0: return [4 /*yield*/, getRootMainManifestJson(currentManifestJson.value.code, currentManifestJson.value.mode)];
|
|
1577
|
+
case 1:
|
|
1578
|
+
manifestJson = _a.sent();
|
|
1579
|
+
mainAppExposeCode = manifestJson.exposes || {};
|
|
1580
|
+
return [2 /*return*/];
|
|
1581
|
+
}
|
|
1582
|
+
});
|
|
1583
|
+
});
|
|
1584
|
+
},
|
|
1585
|
+
resolveId: function (id, importer) {
|
|
1586
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
1587
|
+
return __generator(this, function (_a) {
|
|
1588
|
+
if (RUNTIME_NAME_REGEXP.test(id)) {
|
|
1589
|
+
return [2 /*return*/, id];
|
|
1590
|
+
}
|
|
1591
|
+
return [2 /*return*/];
|
|
1592
|
+
});
|
|
1593
|
+
});
|
|
1594
|
+
},
|
|
1595
|
+
load: function (id) {
|
|
1596
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
1597
|
+
var matched, deepPath, moduleExpose;
|
|
1598
|
+
return __generator(this, function (_a) {
|
|
1599
|
+
if (RUNTIME_NAME_REGEXP.test(id)) {
|
|
1600
|
+
matched = id.match(RUNTIME_NAME_REGEXP);
|
|
1601
|
+
deepPath = "." + ((matched === null || matched === void 0 ? void 0 : matched[1]) || "");
|
|
1602
|
+
moduleExpose = mainAppExposeCode[deepPath] || {};
|
|
1603
|
+
return [2 /*return*/, renderRuntimeCode(moduleExpose, currentManifestJson.value.appCode)];
|
|
1604
|
+
}
|
|
1605
|
+
return [2 /*return*/];
|
|
1606
|
+
});
|
|
1607
|
+
});
|
|
1608
|
+
},
|
|
1609
|
+
buildStart: function () {
|
|
1610
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
1611
|
+
var _i, _a, _b, spec, r, id, fileName, fileNameWithoutExt;
|
|
1612
|
+
var _this = this;
|
|
1613
|
+
return __generator(this, function (_c) {
|
|
1614
|
+
switch (_c.label) {
|
|
1615
|
+
case 0:
|
|
1616
|
+
// 显式发射 runtime chunk,确保它被打包到根目录
|
|
1617
|
+
Object.keys(mainAppExposeCode).forEach(function (key) {
|
|
1618
|
+
var keyDir = key.replace(/\./g, "").replace(/\//g, "_");
|
|
1619
|
+
_this.emitFile({
|
|
1620
|
+
type: "chunk",
|
|
1621
|
+
id: path.join(RUNTIME_NAME, key),
|
|
1622
|
+
fileName: buildName.replace("{template}", keyDir),
|
|
1623
|
+
});
|
|
1624
|
+
});
|
|
1625
|
+
_i = 0, _a = Object.entries(options.exposes || {});
|
|
1626
|
+
_c.label = 1;
|
|
1627
|
+
case 1:
|
|
1628
|
+
if (!(_i < _a.length)) return [3 /*break*/, 4];
|
|
1629
|
+
_b = _a[_i], _b[0], spec = _b[1];
|
|
1630
|
+
return [4 /*yield*/, this.resolve(spec)];
|
|
1631
|
+
case 2:
|
|
1632
|
+
r = _c.sent();
|
|
1633
|
+
if (r) {
|
|
1634
|
+
id = r === null || r === void 0 ? void 0 : r.id;
|
|
1635
|
+
fileName = path.relative(process.cwd() + "/src/", id);
|
|
1636
|
+
fileNameWithoutExt = getFilePathWithoutExt(fileName);
|
|
1637
|
+
this.emitFile({
|
|
1638
|
+
type: "chunk",
|
|
1639
|
+
id: r.id,
|
|
1640
|
+
name: fileNameWithoutExt,
|
|
1641
|
+
});
|
|
1642
|
+
}
|
|
1643
|
+
_c.label = 3;
|
|
1644
|
+
case 3:
|
|
1645
|
+
_i++;
|
|
1646
|
+
return [3 /*break*/, 1];
|
|
1647
|
+
case 4: return [2 /*return*/];
|
|
1648
|
+
}
|
|
1649
|
+
});
|
|
1650
|
+
});
|
|
1651
|
+
},
|
|
1652
|
+
generateBundle: function (_, bundles) {
|
|
1653
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
1654
|
+
var chunks, resolveIdsMap, _loop_1, this_1, _a, _b, _c, _i, i;
|
|
1655
|
+
return __generator(this, function (_d) {
|
|
1656
|
+
switch (_d.label) {
|
|
1657
|
+
case 0:
|
|
1658
|
+
chunks = Object.values(bundles).filter(function (b) { return b.type === "chunk"; });
|
|
1659
|
+
resolveIdsMap = {};
|
|
1660
|
+
_loop_1 = function (i) {
|
|
1661
|
+
var moduleId, owner;
|
|
1662
|
+
return __generator(this, function (_e) {
|
|
1663
|
+
switch (_e.label) {
|
|
1664
|
+
case 0: return [4 /*yield*/, this_1.resolve(options.exposes[i])];
|
|
1665
|
+
case 1:
|
|
1666
|
+
moduleId = _e.sent();
|
|
1667
|
+
if (moduleId) {
|
|
1668
|
+
owner = chunks.find(function (c) { return c.modules && c.modules[moduleId.id]; });
|
|
1669
|
+
if (owner) {
|
|
1670
|
+
resolveIdsMap[i] = {
|
|
1671
|
+
path: owner.fileName,
|
|
1672
|
+
exports: owner.exports,
|
|
1673
|
+
};
|
|
1674
|
+
}
|
|
1675
|
+
}
|
|
1676
|
+
return [2 /*return*/];
|
|
1677
|
+
}
|
|
1678
|
+
});
|
|
1679
|
+
};
|
|
1680
|
+
this_1 = this;
|
|
1681
|
+
_a = options.exposes;
|
|
1682
|
+
_b = [];
|
|
1683
|
+
for (_c in _a)
|
|
1684
|
+
_b.push(_c);
|
|
1685
|
+
_i = 0;
|
|
1686
|
+
_d.label = 1;
|
|
1687
|
+
case 1:
|
|
1688
|
+
if (!(_i < _b.length)) return [3 /*break*/, 4];
|
|
1689
|
+
_c = _b[_i];
|
|
1690
|
+
if (!(_c in _a)) return [3 /*break*/, 3];
|
|
1691
|
+
i = _c;
|
|
1692
|
+
return [5 /*yield**/, _loop_1(i)];
|
|
1693
|
+
case 2:
|
|
1694
|
+
_d.sent();
|
|
1695
|
+
_d.label = 3;
|
|
1696
|
+
case 3:
|
|
1697
|
+
_i++;
|
|
1698
|
+
return [3 /*break*/, 1];
|
|
1699
|
+
case 4:
|
|
1700
|
+
currentManifestJson.setExposes(resolveIdsMap);
|
|
1701
|
+
return [2 /*return*/];
|
|
1702
|
+
}
|
|
1703
|
+
});
|
|
1704
|
+
});
|
|
1705
|
+
},
|
|
1706
|
+
},
|
|
1707
|
+
];
|
|
1708
|
+
};
|
|
1709
|
+
|
|
1553
1710
|
var createMpWeixinUniPlugin = function (options) {
|
|
1711
|
+
if (options === void 0) { options = {}; }
|
|
1554
1712
|
var currentManifestJson = createManifestManager();
|
|
1713
|
+
options.exposes = options.exposes || {};
|
|
1555
1714
|
return [
|
|
1556
1715
|
{
|
|
1557
1716
|
name: "@dd-code:genre-params",
|
|
@@ -1561,7 +1720,9 @@ var createMpWeixinUniPlugin = function (options) {
|
|
|
1561
1720
|
return __generator(this, function (_a) {
|
|
1562
1721
|
switch (_a.label) {
|
|
1563
1722
|
case 0:
|
|
1564
|
-
currentManifestJson.setEnv(config.mode);
|
|
1723
|
+
currentManifestJson.setEnv(config.mode || "dev");
|
|
1724
|
+
// 清空 PUBLISH_PATH 目录
|
|
1725
|
+
unlinkDeepDirOrFile(PUBLISH_PATH);
|
|
1565
1726
|
return [4 /*yield*/, resetOutDir(currentManifestJson, config)];
|
|
1566
1727
|
case 1:
|
|
1567
1728
|
_a.sent();
|
|
@@ -1571,6 +1732,7 @@ var createMpWeixinUniPlugin = function (options) {
|
|
|
1571
1732
|
});
|
|
1572
1733
|
},
|
|
1573
1734
|
},
|
|
1735
|
+
createExposesPlugin(options, currentManifestJson),
|
|
1574
1736
|
createAppsAssetsPlugin(currentManifestJson),
|
|
1575
1737
|
createManifestPlugin(currentManifestJson),
|
|
1576
1738
|
createMainAppPlugin(currentManifestJson),
|
|
@@ -1591,7 +1753,7 @@ var createMpWeixinUniPlugin = function (options) {
|
|
|
1591
1753
|
var index = (function (options) {
|
|
1592
1754
|
var platform = getPlatform();
|
|
1593
1755
|
return platform === EPlaform.MP_WEIXIN
|
|
1594
|
-
? createMpWeixinUniPlugin()
|
|
1756
|
+
? createMpWeixinUniPlugin(options)
|
|
1595
1757
|
: [];
|
|
1596
1758
|
});
|
|
1597
1759
|
|