@modern-js/app-tools 2.58.1-alpha.0 → 2.58.1-alpha.2
Sign up to get free protection for your applications and to get access to all the features.
- 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": {
|