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