@modern-js/app-tools 2.58.1-alpha.0 → 2.58.1-alpha.2
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/dist/cjs/plugins/deploy/dependencies/index.js +5 -2
- package/dist/cjs/plugins/deploy/dependencies/utils.js +31 -7
- package/dist/esm/plugins/deploy/dependencies/index.js +5 -2
- package/dist/esm/plugins/deploy/dependencies/utils.js +189 -79
- package/dist/esm-node/plugins/deploy/dependencies/index.js +5 -2
- package/dist/esm-node/plugins/deploy/dependencies/utils.js +31 -7
- package/dist/types/plugins/deploy/dependencies/utils.d.ts +1 -0
- package/package.json +6 -6
|
@@ -41,11 +41,13 @@ var import_nft = require("@vercel/nft");
|
|
|
41
41
|
const handleDependencies = async ({ appDir, serverRootDir, includeEntries, traceFiles = import_utils2.traceFiles, entryFilter, modifyPackageJson, copyWholePackage, cacheOptions = {
|
|
42
42
|
cacheDir: ".modern-js/deploy",
|
|
43
43
|
fileCache: true,
|
|
44
|
-
analysisCache: true
|
|
44
|
+
analysisCache: true,
|
|
45
|
+
symlinkCache: true
|
|
45
46
|
}, traceOptions }) => {
|
|
46
47
|
const base = "/";
|
|
47
48
|
const startTime = Date.now();
|
|
48
49
|
const entryFiles = await (0, import_utils2.findEntryFiles)(serverRootDir, entryFilter);
|
|
50
|
+
console.time("traceFiles");
|
|
49
51
|
const fileTrace = await traceFiles({
|
|
50
52
|
entryFiles: entryFiles.concat(includeEntries),
|
|
51
53
|
serverRootDir,
|
|
@@ -56,6 +58,7 @@ const handleDependencies = async ({ appDir, serverRootDir, includeEntries, trace
|
|
|
56
58
|
base,
|
|
57
59
|
traceOptions
|
|
58
60
|
});
|
|
61
|
+
console.timeEnd("traceFiles");
|
|
59
62
|
const currentProjectModules = import_node_path.default.join(appDir, "node_modules");
|
|
60
63
|
const dependencySearchRoot = import_node_path.default.resolve(appDir, "../../../../../../");
|
|
61
64
|
const tracedFiles = Object.fromEntries(await Promise.all([
|
|
@@ -238,7 +241,7 @@ const handleDependencies = async ({ appDir, serverRootDir, includeEntries, trace
|
|
|
238
241
|
const finalPkgJson = (modifyPackageJson === null || modifyPackageJson === void 0 ? void 0 : modifyPackageJson(newPkgJson)) || newPkgJson;
|
|
239
242
|
await import_utils.fs.writeJSON(outputPkgPath, finalPkgJson);
|
|
240
243
|
const endTime = Date.now();
|
|
241
|
-
console.log("handleDependencies cost:", endTime - startTime);
|
|
244
|
+
console.log("handleDependencies cost:", `${endTime - startTime}ms`);
|
|
242
245
|
};
|
|
243
246
|
// Annotate the CommonJS export names for ESM import in node:
|
|
244
247
|
0 && (module.exports = {
|
|
@@ -145,6 +145,9 @@ async function serializeMap(map) {
|
|
|
145
145
|
resolvedMap.set(key, value instanceof Promise ? await Promise.resolve(value) : value);
|
|
146
146
|
}));
|
|
147
147
|
return JSON.stringify(resolvedMap, (key, value) => {
|
|
148
|
+
if (value === null) {
|
|
149
|
+
return void 0;
|
|
150
|
+
}
|
|
148
151
|
if (value instanceof Map) {
|
|
149
152
|
return {
|
|
150
153
|
dataType: "Map",
|
|
@@ -172,9 +175,10 @@ function deserializeMap(serializedData) {
|
|
|
172
175
|
});
|
|
173
176
|
}
|
|
174
177
|
const traceFiles = async ({ entryFiles, serverRootDir, base = "/", cacheOptions, traceOptions }) => {
|
|
175
|
-
const { cacheDir, fileCache: enableFileCache, analysisCache: enableAnalysisCache } = cacheOptions;
|
|
178
|
+
const { cacheDir, fileCache: enableFileCache, analysisCache: enableAnalysisCache, symlinkCache: enableSymlinkCache } = cacheOptions;
|
|
176
179
|
const analysisCacheFile = import_path.default.join(cacheDir, "analysis-cache.json");
|
|
177
180
|
const fileCacheFile = import_path.default.join(cacheDir, "file-cache.json");
|
|
181
|
+
const symlinkCacheFile = import_path.default.join(cacheDir, "symlink-cache.json");
|
|
178
182
|
const cache = /* @__PURE__ */ Object.create(null);
|
|
179
183
|
if (enableAnalysisCache && await import_utils.fs.pathExists(analysisCacheFile)) {
|
|
180
184
|
const analysisCache2 = (await import_utils.fs.readFile(analysisCacheFile)).toString();
|
|
@@ -184,14 +188,18 @@ const traceFiles = async ({ entryFiles, serverRootDir, base = "/", cacheOptions,
|
|
|
184
188
|
const fileCache2 = (await import_utils.fs.readFile(fileCacheFile)).toString();
|
|
185
189
|
cache.fileCache = deserializeMap(fileCache2);
|
|
186
190
|
}
|
|
191
|
+
if (enableSymlinkCache && await import_utils.fs.pathExists(symlinkCacheFile)) {
|
|
192
|
+
const symlinkCache2 = (await import_utils.fs.readFile(symlinkCacheFile)).toString();
|
|
193
|
+
cache.symlinkCache = deserializeMap(symlinkCache2);
|
|
194
|
+
}
|
|
187
195
|
const res = await (0, import_nft.nodeFileTrace)(entryFiles, {
|
|
188
196
|
base,
|
|
189
197
|
processCwd: serverRootDir,
|
|
190
198
|
cache,
|
|
191
199
|
...traceOptions
|
|
192
200
|
});
|
|
193
|
-
const { analysisCache, fileCache } = cache;
|
|
194
|
-
if (analysisCache || fileCache) {
|
|
201
|
+
const { analysisCache, fileCache, symlinkCache } = cache;
|
|
202
|
+
if (analysisCache || fileCache || symlinkCache) {
|
|
195
203
|
await import_utils.fs.ensureDir(cacheDir);
|
|
196
204
|
if (analysisCache) {
|
|
197
205
|
const newAnalysisCache = new Map(analysisCache);
|
|
@@ -200,7 +208,10 @@ const traceFiles = async ({ entryFiles, serverRootDir, base = "/", cacheOptions,
|
|
|
200
208
|
newAnalysisCache.delete(key);
|
|
201
209
|
}
|
|
202
210
|
}
|
|
203
|
-
|
|
211
|
+
(async () => {
|
|
212
|
+
await import_utils.fs.writeFile(analysisCacheFile, await serializeMap(newAnalysisCache));
|
|
213
|
+
console.log("write analysis cache finish");
|
|
214
|
+
})();
|
|
204
215
|
}
|
|
205
216
|
if (fileCache) {
|
|
206
217
|
const newFileCache = new Map(fileCache);
|
|
@@ -209,9 +220,22 @@ const traceFiles = async ({ entryFiles, serverRootDir, base = "/", cacheOptions,
|
|
|
209
220
|
newFileCache.delete(key);
|
|
210
221
|
}
|
|
211
222
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
223
|
+
(async () => {
|
|
224
|
+
await import_utils.fs.writeFile(fileCacheFile, await serializeMap(newFileCache));
|
|
225
|
+
console.log("write file cache finish");
|
|
226
|
+
})();
|
|
227
|
+
}
|
|
228
|
+
if (symlinkCache) {
|
|
229
|
+
const newSymlinkCache = new Map(symlinkCache);
|
|
230
|
+
for (const key of newSymlinkCache.keys()) {
|
|
231
|
+
if (!key.includes("node_modules/")) {
|
|
232
|
+
newSymlinkCache.delete(key);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
(async () => {
|
|
236
|
+
await import_utils.fs.writeFile(symlinkCacheFile, await serializeMap(newSymlinkCache));
|
|
237
|
+
console.log("write symlink cache finish");
|
|
238
|
+
})();
|
|
215
239
|
}
|
|
216
240
|
}
|
|
217
241
|
console.log("ffffffff", __filename);
|
|
@@ -20,7 +20,8 @@ var handleDependencies = function() {
|
|
|
20
20
|
appDir = param.appDir, serverRootDir = param.serverRootDir, includeEntries = param.includeEntries, _param_traceFiles = param.traceFiles, traceFiles = _param_traceFiles === void 0 ? defaultTraceFiles : _param_traceFiles, entryFilter = param.entryFilter, modifyPackageJson = param.modifyPackageJson, copyWholePackage = param.copyWholePackage, _param_cacheOptions = param.cacheOptions, cacheOptions = _param_cacheOptions === void 0 ? {
|
|
21
21
|
cacheDir: ".modern-js/deploy",
|
|
22
22
|
fileCache: true,
|
|
23
|
-
analysisCache: true
|
|
23
|
+
analysisCache: true,
|
|
24
|
+
symlinkCache: true
|
|
24
25
|
} : _param_cacheOptions, traceOptions = param.traceOptions;
|
|
25
26
|
base = "/";
|
|
26
27
|
startTime = Date.now();
|
|
@@ -30,6 +31,7 @@ var handleDependencies = function() {
|
|
|
30
31
|
];
|
|
31
32
|
case 1:
|
|
32
33
|
entryFiles = _state.sent();
|
|
34
|
+
console.time("traceFiles");
|
|
33
35
|
return [
|
|
34
36
|
4,
|
|
35
37
|
traceFiles({
|
|
@@ -44,6 +46,7 @@ var handleDependencies = function() {
|
|
|
44
46
|
];
|
|
45
47
|
case 2:
|
|
46
48
|
fileTrace = _state.sent();
|
|
49
|
+
console.timeEnd("traceFiles");
|
|
47
50
|
currentProjectModules = path.join(appDir, "node_modules");
|
|
48
51
|
dependencySearchRoot = path.resolve(appDir, "../../../../../../");
|
|
49
52
|
_ = Object.fromEntries;
|
|
@@ -609,7 +612,7 @@ var handleDependencies = function() {
|
|
|
609
612
|
case 24:
|
|
610
613
|
_state.sent();
|
|
611
614
|
endTime = Date.now();
|
|
612
|
-
console.log("handleDependencies cost:", endTime - startTime);
|
|
615
|
+
console.log("handleDependencies cost:", "".concat(endTime - startTime, "ms"));
|
|
613
616
|
return [
|
|
614
617
|
2
|
|
615
618
|
];
|
|
@@ -415,6 +415,9 @@ function _serializeMap() {
|
|
|
415
415
|
return [
|
|
416
416
|
2,
|
|
417
417
|
JSON.stringify(resolvedMap, function(key, value) {
|
|
418
|
+
if (value === null) {
|
|
419
|
+
return void 0;
|
|
420
|
+
}
|
|
418
421
|
if (_instanceof(value, Map)) {
|
|
419
422
|
return {
|
|
420
423
|
dataType: "Map",
|
|
@@ -448,14 +451,15 @@ function deserializeMap(serializedData) {
|
|
|
448
451
|
}
|
|
449
452
|
var traceFiles = function() {
|
|
450
453
|
var _ref = _async_to_generator(function(param) {
|
|
451
|
-
var entryFiles, serverRootDir, _param_base, base, cacheOptions, traceOptions, cacheDir, enableFileCache, enableAnalysisCache, analysisCacheFile, fileCacheFile, cache, _tmp, analysisCache, _tmp1, fileCache, res, analysisCache1, fileCache1, newAnalysisCache, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, key,
|
|
454
|
+
var entryFiles, serverRootDir, _param_base, base, cacheOptions, traceOptions, cacheDir, enableFileCache, enableAnalysisCache, enableSymlinkCache, analysisCacheFile, fileCacheFile, symlinkCacheFile, cache, _tmp, analysisCache, _tmp1, fileCache, _tmp2, symlinkCache, res, analysisCache1, fileCache1, symlinkCache1, newAnalysisCache, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, key, newFileCache, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, key1, newSymlinkCache, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, key2;
|
|
452
455
|
return _ts_generator(this, function(_state) {
|
|
453
456
|
switch (_state.label) {
|
|
454
457
|
case 0:
|
|
455
458
|
entryFiles = param.entryFiles, serverRootDir = param.serverRootDir, _param_base = param.base, base = _param_base === void 0 ? "/" : _param_base, cacheOptions = param.cacheOptions, traceOptions = param.traceOptions;
|
|
456
|
-
cacheDir = cacheOptions.cacheDir, enableFileCache = cacheOptions.fileCache, enableAnalysisCache = cacheOptions.analysisCache;
|
|
459
|
+
cacheDir = cacheOptions.cacheDir, enableFileCache = cacheOptions.fileCache, enableAnalysisCache = cacheOptions.analysisCache, enableSymlinkCache = cacheOptions.symlinkCache;
|
|
457
460
|
analysisCacheFile = path.join(cacheDir, "analysis-cache.json");
|
|
458
461
|
fileCacheFile = path.join(cacheDir, "file-cache.json");
|
|
462
|
+
symlinkCacheFile = path.join(cacheDir, "symlink-cache.json");
|
|
459
463
|
cache = /* @__PURE__ */ Object.create(null);
|
|
460
464
|
_tmp = enableAnalysisCache;
|
|
461
465
|
if (!_tmp)
|
|
@@ -513,6 +517,34 @@ var traceFiles = function() {
|
|
|
513
517
|
cache.fileCache = deserializeMap(fileCache);
|
|
514
518
|
_state.label = 8;
|
|
515
519
|
case 8:
|
|
520
|
+
_tmp2 = enableSymlinkCache;
|
|
521
|
+
if (!_tmp2)
|
|
522
|
+
return [
|
|
523
|
+
3,
|
|
524
|
+
10
|
|
525
|
+
];
|
|
526
|
+
return [
|
|
527
|
+
4,
|
|
528
|
+
fse.pathExists(symlinkCacheFile)
|
|
529
|
+
];
|
|
530
|
+
case 9:
|
|
531
|
+
_tmp2 = _state.sent();
|
|
532
|
+
_state.label = 10;
|
|
533
|
+
case 10:
|
|
534
|
+
if (!_tmp2)
|
|
535
|
+
return [
|
|
536
|
+
3,
|
|
537
|
+
12
|
|
538
|
+
];
|
|
539
|
+
return [
|
|
540
|
+
4,
|
|
541
|
+
fse.readFile(symlinkCacheFile)
|
|
542
|
+
];
|
|
543
|
+
case 11:
|
|
544
|
+
symlinkCache = _state.sent().toString();
|
|
545
|
+
cache.symlinkCache = deserializeMap(symlinkCache);
|
|
546
|
+
_state.label = 12;
|
|
547
|
+
case 12:
|
|
516
548
|
return [
|
|
517
549
|
4,
|
|
518
550
|
nodeFileTrace(entryFiles, _object_spread({
|
|
@@ -521,106 +553,184 @@ var traceFiles = function() {
|
|
|
521
553
|
cache
|
|
522
554
|
}, traceOptions))
|
|
523
555
|
];
|
|
524
|
-
case
|
|
556
|
+
case 13:
|
|
525
557
|
res = _state.sent();
|
|
526
|
-
analysisCache1 = cache.analysisCache, fileCache1 = cache.fileCache;
|
|
527
|
-
if (!(analysisCache1 || fileCache1))
|
|
558
|
+
analysisCache1 = cache.analysisCache, fileCache1 = cache.fileCache, symlinkCache1 = cache.symlinkCache;
|
|
559
|
+
if (!(analysisCache1 || fileCache1 || symlinkCache1))
|
|
528
560
|
return [
|
|
529
561
|
3,
|
|
530
|
-
|
|
562
|
+
15
|
|
531
563
|
];
|
|
532
564
|
return [
|
|
533
565
|
4,
|
|
534
566
|
fse.ensureDir(cacheDir)
|
|
535
567
|
];
|
|
536
|
-
case
|
|
568
|
+
case 14:
|
|
537
569
|
_state.sent();
|
|
538
|
-
if (
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
12
|
|
542
|
-
];
|
|
543
|
-
newAnalysisCache = new Map(analysisCache1);
|
|
544
|
-
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
545
|
-
try {
|
|
546
|
-
for (_iterator = newAnalysisCache.keys()[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
547
|
-
key = _step.value;
|
|
548
|
-
if (!key.includes("node_modules/")) {
|
|
549
|
-
newAnalysisCache.delete(key);
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
} catch (err) {
|
|
553
|
-
_didIteratorError = true;
|
|
554
|
-
_iteratorError = err;
|
|
555
|
-
} finally {
|
|
570
|
+
if (analysisCache1) {
|
|
571
|
+
newAnalysisCache = new Map(analysisCache1);
|
|
572
|
+
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
556
573
|
try {
|
|
557
|
-
|
|
558
|
-
|
|
574
|
+
for (_iterator = newAnalysisCache.keys()[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
575
|
+
key = _step.value;
|
|
576
|
+
if (!key.includes("node_modules/")) {
|
|
577
|
+
newAnalysisCache.delete(key);
|
|
578
|
+
}
|
|
559
579
|
}
|
|
580
|
+
} catch (err) {
|
|
581
|
+
_didIteratorError = true;
|
|
582
|
+
_iteratorError = err;
|
|
560
583
|
} finally {
|
|
561
|
-
|
|
562
|
-
|
|
584
|
+
try {
|
|
585
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
586
|
+
_iterator.return();
|
|
587
|
+
}
|
|
588
|
+
} finally {
|
|
589
|
+
if (_didIteratorError) {
|
|
590
|
+
throw _iteratorError;
|
|
591
|
+
}
|
|
563
592
|
}
|
|
564
593
|
}
|
|
594
|
+
_async_to_generator(function() {
|
|
595
|
+
var _, _tmp3;
|
|
596
|
+
return _ts_generator(this, function(_state2) {
|
|
597
|
+
switch (_state2.label) {
|
|
598
|
+
case 0:
|
|
599
|
+
_ = fse.writeFile;
|
|
600
|
+
_tmp3 = [
|
|
601
|
+
analysisCacheFile
|
|
602
|
+
];
|
|
603
|
+
return [
|
|
604
|
+
4,
|
|
605
|
+
serializeMap(newAnalysisCache)
|
|
606
|
+
];
|
|
607
|
+
case 1:
|
|
608
|
+
return [
|
|
609
|
+
4,
|
|
610
|
+
_.apply(fse, _tmp3.concat([
|
|
611
|
+
_state2.sent()
|
|
612
|
+
]))
|
|
613
|
+
];
|
|
614
|
+
case 2:
|
|
615
|
+
_state2.sent();
|
|
616
|
+
console.log("write analysis cache finish");
|
|
617
|
+
return [
|
|
618
|
+
2
|
|
619
|
+
];
|
|
620
|
+
}
|
|
621
|
+
});
|
|
622
|
+
})();
|
|
565
623
|
}
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
for (_iterator1 = newFileCache.keys()[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
|
|
589
|
-
key1 = _step1.value;
|
|
590
|
-
if (!key1.includes("node_modules/")) {
|
|
591
|
-
newFileCache.delete(key1);
|
|
624
|
+
if (fileCache1) {
|
|
625
|
+
newFileCache = new Map(fileCache1);
|
|
626
|
+
_iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
|
|
627
|
+
try {
|
|
628
|
+
for (_iterator1 = newFileCache.keys()[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
|
|
629
|
+
key1 = _step1.value;
|
|
630
|
+
if (!key1.includes("node_modules/")) {
|
|
631
|
+
newFileCache.delete(key1);
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
} catch (err) {
|
|
635
|
+
_didIteratorError1 = true;
|
|
636
|
+
_iteratorError1 = err;
|
|
637
|
+
} finally {
|
|
638
|
+
try {
|
|
639
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
640
|
+
_iterator1.return();
|
|
641
|
+
}
|
|
642
|
+
} finally {
|
|
643
|
+
if (_didIteratorError1) {
|
|
644
|
+
throw _iteratorError1;
|
|
645
|
+
}
|
|
592
646
|
}
|
|
593
647
|
}
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
648
|
+
_async_to_generator(function() {
|
|
649
|
+
var _, _tmp3;
|
|
650
|
+
return _ts_generator(this, function(_state2) {
|
|
651
|
+
switch (_state2.label) {
|
|
652
|
+
case 0:
|
|
653
|
+
_ = fse.writeFile;
|
|
654
|
+
_tmp3 = [
|
|
655
|
+
fileCacheFile
|
|
656
|
+
];
|
|
657
|
+
return [
|
|
658
|
+
4,
|
|
659
|
+
serializeMap(newFileCache)
|
|
660
|
+
];
|
|
661
|
+
case 1:
|
|
662
|
+
return [
|
|
663
|
+
4,
|
|
664
|
+
_.apply(fse, _tmp3.concat([
|
|
665
|
+
_state2.sent()
|
|
666
|
+
]))
|
|
667
|
+
];
|
|
668
|
+
case 2:
|
|
669
|
+
_state2.sent();
|
|
670
|
+
console.log("write file cache finish");
|
|
671
|
+
return [
|
|
672
|
+
2
|
|
673
|
+
];
|
|
674
|
+
}
|
|
675
|
+
});
|
|
676
|
+
})();
|
|
677
|
+
}
|
|
678
|
+
if (symlinkCache1) {
|
|
679
|
+
newSymlinkCache = new Map(symlinkCache1);
|
|
680
|
+
_iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
|
|
598
681
|
try {
|
|
599
|
-
|
|
600
|
-
|
|
682
|
+
for (_iterator2 = newSymlinkCache.keys()[Symbol.iterator](); !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
|
683
|
+
key2 = _step2.value;
|
|
684
|
+
if (!key2.includes("node_modules/")) {
|
|
685
|
+
newSymlinkCache.delete(key2);
|
|
686
|
+
}
|
|
601
687
|
}
|
|
688
|
+
} catch (err) {
|
|
689
|
+
_didIteratorError2 = true;
|
|
690
|
+
_iteratorError2 = err;
|
|
602
691
|
} finally {
|
|
603
|
-
|
|
604
|
-
|
|
692
|
+
try {
|
|
693
|
+
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
694
|
+
_iterator2.return();
|
|
695
|
+
}
|
|
696
|
+
} finally {
|
|
697
|
+
if (_didIteratorError2) {
|
|
698
|
+
throw _iteratorError2;
|
|
699
|
+
}
|
|
605
700
|
}
|
|
606
701
|
}
|
|
702
|
+
_async_to_generator(function() {
|
|
703
|
+
var _, _tmp3;
|
|
704
|
+
return _ts_generator(this, function(_state2) {
|
|
705
|
+
switch (_state2.label) {
|
|
706
|
+
case 0:
|
|
707
|
+
_ = fse.writeFile;
|
|
708
|
+
_tmp3 = [
|
|
709
|
+
symlinkCacheFile
|
|
710
|
+
];
|
|
711
|
+
return [
|
|
712
|
+
4,
|
|
713
|
+
serializeMap(newSymlinkCache)
|
|
714
|
+
];
|
|
715
|
+
case 1:
|
|
716
|
+
return [
|
|
717
|
+
4,
|
|
718
|
+
_.apply(fse, _tmp3.concat([
|
|
719
|
+
_state2.sent()
|
|
720
|
+
]))
|
|
721
|
+
];
|
|
722
|
+
case 2:
|
|
723
|
+
_state2.sent();
|
|
724
|
+
console.log("write symlink cache finish");
|
|
725
|
+
return [
|
|
726
|
+
2
|
|
727
|
+
];
|
|
728
|
+
}
|
|
729
|
+
});
|
|
730
|
+
})();
|
|
607
731
|
}
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
_tmp3 = [
|
|
611
|
-
fileCacheFile
|
|
612
|
-
];
|
|
613
|
-
return [
|
|
614
|
-
4,
|
|
615
|
-
serializeMap(newFileCache)
|
|
616
|
-
];
|
|
617
|
-
case 13:
|
|
618
|
-
_1.apply(fse, _tmp3.concat([
|
|
619
|
-
_state.sent()
|
|
620
|
-
]));
|
|
621
|
-
console.timeEnd("111");
|
|
622
|
-
_state.label = 14;
|
|
623
|
-
case 14:
|
|
732
|
+
_state.label = 15;
|
|
733
|
+
case 15:
|
|
624
734
|
console.log("ffffffff", __filename);
|
|
625
735
|
return [
|
|
626
736
|
2,
|
|
@@ -7,11 +7,13 @@ import { nodeFileTrace } from "@vercel/nft";
|
|
|
7
7
|
const handleDependencies = async ({ appDir, serverRootDir, includeEntries, traceFiles = defaultTraceFiles, entryFilter, modifyPackageJson, copyWholePackage, cacheOptions = {
|
|
8
8
|
cacheDir: ".modern-js/deploy",
|
|
9
9
|
fileCache: true,
|
|
10
|
-
analysisCache: true
|
|
10
|
+
analysisCache: true,
|
|
11
|
+
symlinkCache: true
|
|
11
12
|
}, traceOptions }) => {
|
|
12
13
|
const base = "/";
|
|
13
14
|
const startTime = Date.now();
|
|
14
15
|
const entryFiles = await findEntryFiles(serverRootDir, entryFilter);
|
|
16
|
+
console.time("traceFiles");
|
|
15
17
|
const fileTrace = await traceFiles({
|
|
16
18
|
entryFiles: entryFiles.concat(includeEntries),
|
|
17
19
|
serverRootDir,
|
|
@@ -22,6 +24,7 @@ const handleDependencies = async ({ appDir, serverRootDir, includeEntries, trace
|
|
|
22
24
|
base,
|
|
23
25
|
traceOptions
|
|
24
26
|
});
|
|
27
|
+
console.timeEnd("traceFiles");
|
|
25
28
|
const currentProjectModules = path.join(appDir, "node_modules");
|
|
26
29
|
const dependencySearchRoot = path.resolve(appDir, "../../../../../../");
|
|
27
30
|
const tracedFiles = Object.fromEntries(await Promise.all([
|
|
@@ -204,7 +207,7 @@ const handleDependencies = async ({ appDir, serverRootDir, includeEntries, trace
|
|
|
204
207
|
const finalPkgJson = (modifyPackageJson === null || modifyPackageJson === void 0 ? void 0 : modifyPackageJson(newPkgJson)) || newPkgJson;
|
|
205
208
|
await fse.writeJSON(outputPkgPath, finalPkgJson);
|
|
206
209
|
const endTime = Date.now();
|
|
207
|
-
console.log("handleDependencies cost:", endTime - startTime);
|
|
210
|
+
console.log("handleDependencies cost:", `${endTime - startTime}ms`);
|
|
208
211
|
};
|
|
209
212
|
export {
|
|
210
213
|
handleDependencies,
|
|
@@ -104,6 +104,9 @@ async function serializeMap(map) {
|
|
|
104
104
|
resolvedMap.set(key, value instanceof Promise ? await Promise.resolve(value) : value);
|
|
105
105
|
}));
|
|
106
106
|
return JSON.stringify(resolvedMap, (key, value) => {
|
|
107
|
+
if (value === null) {
|
|
108
|
+
return void 0;
|
|
109
|
+
}
|
|
107
110
|
if (value instanceof Map) {
|
|
108
111
|
return {
|
|
109
112
|
dataType: "Map",
|
|
@@ -131,9 +134,10 @@ function deserializeMap(serializedData) {
|
|
|
131
134
|
});
|
|
132
135
|
}
|
|
133
136
|
const traceFiles = async ({ entryFiles, serverRootDir, base = "/", cacheOptions, traceOptions }) => {
|
|
134
|
-
const { cacheDir, fileCache: enableFileCache, analysisCache: enableAnalysisCache } = cacheOptions;
|
|
137
|
+
const { cacheDir, fileCache: enableFileCache, analysisCache: enableAnalysisCache, symlinkCache: enableSymlinkCache } = cacheOptions;
|
|
135
138
|
const analysisCacheFile = path.join(cacheDir, "analysis-cache.json");
|
|
136
139
|
const fileCacheFile = path.join(cacheDir, "file-cache.json");
|
|
140
|
+
const symlinkCacheFile = path.join(cacheDir, "symlink-cache.json");
|
|
137
141
|
const cache = /* @__PURE__ */ Object.create(null);
|
|
138
142
|
if (enableAnalysisCache && await fse.pathExists(analysisCacheFile)) {
|
|
139
143
|
const analysisCache2 = (await fse.readFile(analysisCacheFile)).toString();
|
|
@@ -143,14 +147,18 @@ const traceFiles = async ({ entryFiles, serverRootDir, base = "/", cacheOptions,
|
|
|
143
147
|
const fileCache2 = (await fse.readFile(fileCacheFile)).toString();
|
|
144
148
|
cache.fileCache = deserializeMap(fileCache2);
|
|
145
149
|
}
|
|
150
|
+
if (enableSymlinkCache && await fse.pathExists(symlinkCacheFile)) {
|
|
151
|
+
const symlinkCache2 = (await fse.readFile(symlinkCacheFile)).toString();
|
|
152
|
+
cache.symlinkCache = deserializeMap(symlinkCache2);
|
|
153
|
+
}
|
|
146
154
|
const res = await nodeFileTrace(entryFiles, {
|
|
147
155
|
base,
|
|
148
156
|
processCwd: serverRootDir,
|
|
149
157
|
cache,
|
|
150
158
|
...traceOptions
|
|
151
159
|
});
|
|
152
|
-
const { analysisCache, fileCache } = cache;
|
|
153
|
-
if (analysisCache || fileCache) {
|
|
160
|
+
const { analysisCache, fileCache, symlinkCache } = cache;
|
|
161
|
+
if (analysisCache || fileCache || symlinkCache) {
|
|
154
162
|
await fse.ensureDir(cacheDir);
|
|
155
163
|
if (analysisCache) {
|
|
156
164
|
const newAnalysisCache = new Map(analysisCache);
|
|
@@ -159,7 +167,10 @@ const traceFiles = async ({ entryFiles, serverRootDir, base = "/", cacheOptions,
|
|
|
159
167
|
newAnalysisCache.delete(key);
|
|
160
168
|
}
|
|
161
169
|
}
|
|
162
|
-
|
|
170
|
+
(async () => {
|
|
171
|
+
await fse.writeFile(analysisCacheFile, await serializeMap(newAnalysisCache));
|
|
172
|
+
console.log("write analysis cache finish");
|
|
173
|
+
})();
|
|
163
174
|
}
|
|
164
175
|
if (fileCache) {
|
|
165
176
|
const newFileCache = new Map(fileCache);
|
|
@@ -168,9 +179,22 @@ const traceFiles = async ({ entryFiles, serverRootDir, base = "/", cacheOptions,
|
|
|
168
179
|
newFileCache.delete(key);
|
|
169
180
|
}
|
|
170
181
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
182
|
+
(async () => {
|
|
183
|
+
await fse.writeFile(fileCacheFile, await serializeMap(newFileCache));
|
|
184
|
+
console.log("write file cache finish");
|
|
185
|
+
})();
|
|
186
|
+
}
|
|
187
|
+
if (symlinkCache) {
|
|
188
|
+
const newSymlinkCache = new Map(symlinkCache);
|
|
189
|
+
for (const key of newSymlinkCache.keys()) {
|
|
190
|
+
if (!key.includes("node_modules/")) {
|
|
191
|
+
newSymlinkCache.delete(key);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
(async () => {
|
|
195
|
+
await fse.writeFile(symlinkCacheFile, await serializeMap(newSymlinkCache));
|
|
196
|
+
console.log("write symlink cache finish");
|
|
197
|
+
})();
|
|
174
198
|
}
|
|
175
199
|
}
|
|
176
200
|
console.log("ffffffff", __filename);
|
|
@@ -36,6 +36,7 @@ export declare const findPackageParents: (pkg: TracedPackage, version: string, t
|
|
|
36
36
|
export interface CacheOptions {
|
|
37
37
|
fileCache: boolean;
|
|
38
38
|
analysisCache: boolean;
|
|
39
|
+
symlinkCache: boolean;
|
|
39
40
|
cacheDir: string;
|
|
40
41
|
}
|
|
41
42
|
export declare const traceFiles: ({ entryFiles, serverRootDir, base, cacheOptions, traceOptions, }: {
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "2.58.1-alpha.
|
|
18
|
+
"version": "2.58.1-alpha.2",
|
|
19
19
|
"jsnext:source": "./src/index.ts",
|
|
20
20
|
"types": "./dist/types/index.d.ts",
|
|
21
21
|
"main": "./dist/cjs/index.js",
|
|
@@ -92,16 +92,16 @@
|
|
|
92
92
|
"@modern-js/core": "2.58.0",
|
|
93
93
|
"@modern-js/node-bundle-require": "2.58.0",
|
|
94
94
|
"@modern-js/plugin": "2.58.0",
|
|
95
|
+
"@modern-js/prod-server": "2.58.0",
|
|
95
96
|
"@modern-js/plugin-i18n": "2.58.0",
|
|
96
97
|
"@modern-js/plugin-lint": "2.58.0",
|
|
97
98
|
"@modern-js/server-core": "2.58.0",
|
|
98
|
-
"@modern-js/rsbuild-plugin-esbuild": "2.58.0",
|
|
99
|
-
"@modern-js/types": "2.58.0",
|
|
100
99
|
"@modern-js/server": "2.58.0",
|
|
101
|
-
"@modern-js/utils": "2.58.0",
|
|
102
|
-
"@modern-js/uni-builder": "2.58.0",
|
|
103
|
-
"@modern-js/prod-server": "2.58.0",
|
|
104
100
|
"@modern-js/server-utils": "2.58.0",
|
|
101
|
+
"@modern-js/uni-builder": "2.58.0",
|
|
102
|
+
"@modern-js/types": "2.58.0",
|
|
103
|
+
"@modern-js/utils": "2.58.0",
|
|
104
|
+
"@modern-js/rsbuild-plugin-esbuild": "2.58.0",
|
|
105
105
|
"@modern-js/plugin-data-loader": "2.58.0"
|
|
106
106
|
},
|
|
107
107
|
"devDependencies": {
|