@pnpm/core 2.7.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/getPeerDependencyIssues.js +30 -9
- package/lib/getPeerDependencyIssues.js.map +1 -1
- package/lib/install/allProjectsAreUpToDate.js +5 -7
- package/lib/install/allProjectsAreUpToDate.js.map +1 -1
- package/lib/install/createPeerDependencyPatcher.js +5 -7
- package/lib/install/createPeerDependencyPatcher.js.map +1 -1
- package/lib/install/extendInstallOptions.d.ts +0 -1
- package/lib/install/extendInstallOptions.js +4 -6
- package/lib/install/extendInstallOptions.js.map +1 -1
- package/lib/install/index.d.ts +1 -1
- package/lib/install/index.js +46 -62
- package/lib/install/index.js.map +1 -1
- package/lib/install/link.d.ts +0 -1
- package/lib/install/link.js +8 -15
- package/lib/install/link.js.map +1 -1
- package/lib/link/index.js +12 -18
- package/lib/link/index.js.map +1 -1
- package/lib/link/options.d.ts +0 -1
- package/lib/link/options.js +2 -4
- package/lib/link/options.js.map +1 -1
- package/lib/parseWantedDependencies.js +2 -3
- package/lib/parseWantedDependencies.js.map +1 -1
- package/package.json +49 -46
|
@@ -1,18 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
29
|
exports.getPeerDependencyIssues = void 0;
|
|
7
|
-
const resolve_dependencies_1 =
|
|
8
|
-
const getWantedDependencies_1 = __importDefault(require("@pnpm/resolve-dependencies/lib/getWantedDependencies"));
|
|
30
|
+
const resolve_dependencies_1 = __importStar(require("@pnpm/resolve-dependencies"));
|
|
9
31
|
const get_context_1 = __importDefault(require("@pnpm/get-context"));
|
|
10
32
|
const install_1 = require("./install");
|
|
11
33
|
const getPreferredVersions_1 = require("./install/getPreferredVersions");
|
|
12
34
|
const normalize_registries_1 = require("@pnpm/normalize-registries");
|
|
13
35
|
async function getPeerDependencyIssues(projects, opts) {
|
|
14
|
-
|
|
15
|
-
const lockfileDir = (_a = opts.lockfileDir) !== null && _a !== void 0 ? _a : process.cwd();
|
|
36
|
+
const lockfileDir = opts.lockfileDir ?? process.cwd();
|
|
16
37
|
const ctx = await (0, get_context_1.default)(projects, {
|
|
17
38
|
force: false,
|
|
18
39
|
forceSharedLockfile: false,
|
|
@@ -25,7 +46,7 @@ async function getPeerDependencyIssues(projects, opts) {
|
|
|
25
46
|
const projectsToResolve = ctx.projects.map((project) => ({
|
|
26
47
|
...project,
|
|
27
48
|
updatePackageManifest: false,
|
|
28
|
-
wantedDependencies: (0,
|
|
49
|
+
wantedDependencies: (0, resolve_dependencies_1.getWantedDependencies)(project.manifest),
|
|
29
50
|
}));
|
|
30
51
|
const preferredVersions = ctx.wantedLockfile.packages ? (0, getPreferredVersions_1.getPreferredVersionsFromLockfile)(ctx.wantedLockfile.packages) : undefined;
|
|
31
52
|
const { peerDependencyIssuesByProjects, waitTillAllFetchingsFinish, } = await (0, resolve_dependencies_1.default)(projectsToResolve, {
|
|
@@ -40,12 +61,12 @@ async function getPeerDependencyIssues(projects, opts) {
|
|
|
40
61
|
lockfileDir,
|
|
41
62
|
overrides: opts.overrides,
|
|
42
63
|
packageExtensions: opts.packageExtensions,
|
|
43
|
-
readPackageHook:
|
|
64
|
+
readPackageHook: opts.hooks?.readPackage,
|
|
44
65
|
}),
|
|
45
66
|
},
|
|
46
|
-
linkWorkspacePackagesDepth:
|
|
67
|
+
linkWorkspacePackagesDepth: opts.linkWorkspacePackagesDepth ?? (opts.saveWorkspaceProtocol ? 0 : -1),
|
|
47
68
|
lockfileDir,
|
|
48
|
-
nodeVersion:
|
|
69
|
+
nodeVersion: opts.nodeVersion ?? process.version,
|
|
49
70
|
pnpmVersion: '',
|
|
50
71
|
preferWorkspacePackages: opts.preferWorkspacePackages,
|
|
51
72
|
preferredVersions,
|
|
@@ -56,7 +77,7 @@ async function getPeerDependencyIssues(projects, opts) {
|
|
|
56
77
|
tag: 'latest',
|
|
57
78
|
virtualStoreDir: ctx.virtualStoreDir,
|
|
58
79
|
wantedLockfile: ctx.wantedLockfile,
|
|
59
|
-
workspacePackages:
|
|
80
|
+
workspacePackages: opts.workspacePackages ?? {},
|
|
60
81
|
});
|
|
61
82
|
await waitTillAllFetchingsFinish();
|
|
62
83
|
return peerDependencyIssuesByProjects;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPeerDependencyIssues.js","sourceRoot":"","sources":["../src/getPeerDependencyIssues.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getPeerDependencyIssues.js","sourceRoot":"","sources":["../src/getPeerDependencyIssues.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mFAAuF;AAEvF,oEAAiF;AACjF,uCAAiD;AACjD,yEAAiF;AAEjF,qEAA+D;AAexD,KAAK,UAAU,uBAAuB,CAC3C,QAA0B,EAC1B,IAA6B;IAE7B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IACrD,MAAM,GAAG,GAAG,MAAM,IAAA,qBAAU,EAAC,QAAQ,EAAE;QACrC,KAAK,EAAE,KAAK;QACZ,mBAAmB,EAAE,KAAK;QAC1B,aAAa,EAAE,EAAE;QACjB,WAAW;QACX,UAAU,EAAE,yCAAkB;QAC9B,WAAW,EAAE,IAAI;QACjB,GAAG,IAAI;KACR,CAAC,CAAA;IACF,MAAM,iBAAiB,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvD,GAAG,OAAO;QACV,qBAAqB,EAAE,KAAK;QAC5B,kBAAkB,EAAE,IAAA,4CAAqB,EAAC,OAAO,CAAC,QAAQ,CAAC;KAC5D,CAAC,CAAC,CAAA;IACH,MAAM,iBAAiB,GAAG,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAA,uDAAgC,EAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjI,MAAM,EACJ,8BAA8B,EAC9B,0BAA0B,GAC3B,GAAG,MAAM,IAAA,8BAAmB,EAC3B,iBAAiB,EACjB;QACE,eAAe,EAAE,GAAG,CAAC,eAAe;QACpC,kBAAkB,EAAE,CAAC,CAAC;QACtB,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,KAAK;QACnB,KAAK,EAAE,KAAK;QACZ,mBAAmB,EAAE,IAAI;QACzB,KAAK,EAAE;YACL,WAAW,EAAE,IAAA,+BAAqB,EAAC;gBACjC,WAAW;gBACX,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,eAAe,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW;aACzC,CAAC;SACH;QACD,0BAA0B,EAAE,IAAI,CAAC,0BAA0B,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpG,WAAW;QACX,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO;QAChD,WAAW,EAAE,EAAE;QACf,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;QACrD,iBAAiB;QACjB,yBAAyB,EAAE,KAAK;QAChC,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,qBAAqB,EAAE,KAAK;QAC5B,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,GAAG,EAAE,QAAQ;QACb,eAAe,EAAE,GAAG,CAAC,eAAe;QACpC,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,EAAE;KAChD,CACF,CAAA;IAED,MAAM,0BAA0B,EAAE,CAAA;IAElC,OAAO,8BAA8B,CAAA;AACvC,CAAC;AA5DD,0DA4DC"}
|
|
@@ -40,7 +40,6 @@ function getWorkspacePackagesByDirectory(workspacePackages) {
|
|
|
40
40
|
return workspacePackagesByDirectory;
|
|
41
41
|
}
|
|
42
42
|
async function linkedPackagesAreUpToDate({ linkWorkspacePackages, manifestsByDir, workspacePackages, }, project) {
|
|
43
|
-
var _a, _b, _c;
|
|
44
43
|
for (const depField of types_1.DEPENDENCIES_FIELDS) {
|
|
45
44
|
const lockfileDeps = project.snapshot[depField];
|
|
46
45
|
const manifestDeps = project.manifest[depField];
|
|
@@ -61,7 +60,7 @@ async function linkedPackagesAreUpToDate({ linkWorkspacePackages, manifestsByDir
|
|
|
61
60
|
}
|
|
62
61
|
const linkedDir = isLinked
|
|
63
62
|
? path_1.default.join(project.dir, lockfileRef.substr(5))
|
|
64
|
-
:
|
|
63
|
+
: workspacePackages?.[depName]?.[lockfileRef]?.dir;
|
|
65
64
|
if (!linkedDir)
|
|
66
65
|
continue;
|
|
67
66
|
if (!linkWorkspacePackages && !currentSpec.startsWith('workspace:')) {
|
|
@@ -69,7 +68,7 @@ async function linkedPackagesAreUpToDate({ linkWorkspacePackages, manifestsByDir
|
|
|
69
68
|
// workspace:x.x.x dependency
|
|
70
69
|
continue;
|
|
71
70
|
}
|
|
72
|
-
const linkedPkg =
|
|
71
|
+
const linkedPkg = manifestsByDir[linkedDir] ?? await (0, read_package_json_1.safeReadPackageFromDir)(linkedDir);
|
|
73
72
|
const availableRange = getVersionRange(currentSpec);
|
|
74
73
|
// This should pass the same options to semver as @pnpm/npm-resolver
|
|
75
74
|
const localPackageSatisfiesRange = availableRange === '*' ||
|
|
@@ -93,10 +92,9 @@ function getVersionRange(spec) {
|
|
|
93
92
|
return spec;
|
|
94
93
|
}
|
|
95
94
|
function hasLocalTarballDepsInRoot(importer) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
(0, any_1.default)(refIsLocalTarball, Object.values(
|
|
99
|
-
(0, any_1.default)(refIsLocalTarball, Object.values((_c = importer.optionalDependencies) !== null && _c !== void 0 ? _c : {}));
|
|
95
|
+
return (0, any_1.default)(refIsLocalTarball, Object.values(importer.dependencies ?? {})) ||
|
|
96
|
+
(0, any_1.default)(refIsLocalTarball, Object.values(importer.devDependencies ?? {})) ||
|
|
97
|
+
(0, any_1.default)(refIsLocalTarball, Object.values(importer.optionalDependencies ?? {}));
|
|
100
98
|
}
|
|
101
99
|
function refIsLocalTarball(ref) {
|
|
102
100
|
return ref.startsWith('file:') && (ref.endsWith('.tgz') || ref.endsWith('.tar.gz') || ref.endsWith('.tar'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allProjectsAreUpToDate.js","sourceRoot":"","sources":["../../src/install/allProjectsAreUpToDate.ts"],"names":[],"mappings":";;;;;AAAA,gDAAuB;AAMvB,yDAA+D;AAC/D,+DAAsF;AAEtF,uCAIoB;AACpB,sDAA4B;AAC5B,wDAA+B;AAC/B,oDAA2B;AAEZ,KAAK,UAAU,sBAAsB,CAClD,QAAgD,EAChD,IAIC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,+BAA+B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5G,MAAM,yBAAyB,GAAG,yCAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IAC1F,MAAM,0BAA0B,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,EAAE;QACtE,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;QACjD,cAAc;QACd,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;KAC1C,CAAC,CAAA;IACF,OAAO,IAAA,iBAAM,EAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC1D,OAAO,CAAC,yBAAyB,CAAC,QAAQ,CAAC;YACzC,yBAAyB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;YACvD,0BAA0B,CAAC;gBACzB,GAAG,EAAE,OAAO,CAAC,OAAO;gBACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACJ,CAAC;AAzBD,yCAyBC;AAED,SAAS,+BAA+B,CAAE,iBAAoC;IAC5E,MAAM,4BAA4B,GAAG,EAAE,CAAA;IACvC,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACvD,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACnE,4BAA4B,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAA;QAC5H,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,OAAO,4BAA4B,CAAA;AACrC,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,EACE,qBAAqB,EACrB,cAAc,EACd,iBAAiB,GAKlB,EACD,OAIC
|
|
1
|
+
{"version":3,"file":"allProjectsAreUpToDate.js","sourceRoot":"","sources":["../../src/install/allProjectsAreUpToDate.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,20 +5,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const isEmpty_1 = __importDefault(require("ramda/src/isEmpty"));
|
|
7
7
|
function default_1(peerDependencyRules) {
|
|
8
|
-
|
|
9
|
-
const ignoreMissing = new Set((_a = peerDependencyRules.ignoreMissing) !== null && _a !== void 0 ? _a : []);
|
|
8
|
+
const ignoreMissing = new Set(peerDependencyRules.ignoreMissing ?? []);
|
|
10
9
|
return ((pkg) => {
|
|
11
|
-
var _a, _b, _c, _d, _e;
|
|
12
10
|
if ((0, isEmpty_1.default)(pkg.peerDependencies))
|
|
13
11
|
return pkg;
|
|
14
|
-
for (const [peerName, peerVersion] of Object.entries(
|
|
15
|
-
if (ignoreMissing.has(peerName) && !
|
|
16
|
-
pkg.peerDependenciesMeta =
|
|
12
|
+
for (const [peerName, peerVersion] of Object.entries(pkg.peerDependencies ?? {})) {
|
|
13
|
+
if (ignoreMissing.has(peerName) && !pkg.peerDependenciesMeta?.[peerName]?.optional) {
|
|
14
|
+
pkg.peerDependenciesMeta = pkg.peerDependenciesMeta ?? {};
|
|
17
15
|
pkg.peerDependenciesMeta[peerName] = {
|
|
18
16
|
optional: true,
|
|
19
17
|
};
|
|
20
18
|
}
|
|
21
|
-
if (
|
|
19
|
+
if (peerDependencyRules.allowedVersions?.[peerName] &&
|
|
22
20
|
peerVersion !== '*') {
|
|
23
21
|
if (peerDependencyRules.allowedVersions[peerName] === '*') {
|
|
24
22
|
pkg.peerDependencies[peerName] = '*';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPeerDependencyPatcher.js","sourceRoot":"","sources":["../../src/install/createPeerDependencyPatcher.ts"],"names":[],"mappings":";;;;;AACA,gEAAuC;AAEvC,mBACE,mBAAwC
|
|
1
|
+
{"version":3,"file":"createPeerDependencyPatcher.js","sourceRoot":"","sources":["../../src/install/createPeerDependencyPatcher.ts"],"names":[],"mappings":";;;;;AACA,gEAAuC;AAEvC,mBACE,mBAAwC;IAExC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,aAAa,IAAI,EAAE,CAAC,CAAA;IACtE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACd,IAAI,IAAA,iBAAO,EAAC,GAAG,CAAC,gBAAgB,CAAC;YAAE,OAAO,GAAG,CAAA;QAC7C,KAAK,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,EAAE;YAChF,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE;gBAClF,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAA;gBACzD,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,GAAG;oBACnC,QAAQ,EAAE,IAAI;iBACf,CAAA;aACF;YACD,IACE,mBAAmB,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;gBAC/C,WAAW,KAAK,GAAG,EACnB;gBACA,IAAI,mBAAmB,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE;oBACzD,GAAG,CAAC,gBAAiB,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAA;iBACtC;qBAAM;oBACL,GAAG,CAAC,gBAAiB,CAAC,QAAQ,CAAC,IAAI,OAAO,mBAAmB,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAA;iBAC1F;aACF;SACF;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,CAAoB,CAAA;AACvB,CAAC;AA1BD,4BA0BC"}
|
|
@@ -31,8 +31,7 @@ const error_1 = __importDefault(require("@pnpm/error"));
|
|
|
31
31
|
const normalize_registries_1 = __importStar(require("@pnpm/normalize-registries"));
|
|
32
32
|
const pnpmPkgJson_1 = __importDefault(require("../pnpmPkgJson"));
|
|
33
33
|
const defaults = async (opts) => {
|
|
34
|
-
|
|
35
|
-
const packageManager = (_a = opts.packageManager) !== null && _a !== void 0 ? _a : {
|
|
34
|
+
const packageManager = opts.packageManager ?? {
|
|
36
35
|
name: pnpmPkgJson_1.default.name,
|
|
37
36
|
version: pnpmPkgJson_1.default.version,
|
|
38
37
|
};
|
|
@@ -41,7 +40,6 @@ const defaults = async (opts) => {
|
|
|
41
40
|
depth: 0,
|
|
42
41
|
enablePnp: false,
|
|
43
42
|
engineStrict: false,
|
|
44
|
-
extendNodePath: true,
|
|
45
43
|
force: false,
|
|
46
44
|
forceSharedLockfile: false,
|
|
47
45
|
frozenLockfile: false,
|
|
@@ -60,7 +58,7 @@ const defaults = async (opts) => {
|
|
|
60
58
|
devDependencies: true,
|
|
61
59
|
optionalDependencies: true,
|
|
62
60
|
},
|
|
63
|
-
lockfileDir:
|
|
61
|
+
lockfileDir: opts.lockfileDir ?? opts.dir ?? process.cwd(),
|
|
64
62
|
lockfileOnly: false,
|
|
65
63
|
nodeVersion: process.version,
|
|
66
64
|
nodeLinker: 'isolated',
|
|
@@ -72,7 +70,7 @@ const defaults = async (opts) => {
|
|
|
72
70
|
preferFrozenLockfile: true,
|
|
73
71
|
preferWorkspacePackages: false,
|
|
74
72
|
preserveWorkspaceProtocol: true,
|
|
75
|
-
pruneLockfileImporters:
|
|
73
|
+
pruneLockfileImporters: true,
|
|
76
74
|
pruneStore: false,
|
|
77
75
|
rawConfig: {},
|
|
78
76
|
registries: normalize_registries_1.DEFAULT_REGISTRIES,
|
|
@@ -85,7 +83,7 @@ const defaults = async (opts) => {
|
|
|
85
83
|
symlink: true,
|
|
86
84
|
storeController: opts.storeController,
|
|
87
85
|
storeDir: opts.storeDir,
|
|
88
|
-
strictPeerDependencies:
|
|
86
|
+
strictPeerDependencies: true,
|
|
89
87
|
tag: 'latest',
|
|
90
88
|
unsafePerm: process.platform === 'win32' ||
|
|
91
89
|
process.platform === 'cygwin' ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extendInstallOptions.js","sourceRoot":"","sources":["../../src/install/extendInstallOptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiD;AACjD,wDAAmC;AAInC,mFAAoF;AASpF,iEAAwC;
|
|
1
|
+
{"version":3,"file":"extendInstallOptions.js","sourceRoot":"","sources":["../../src/install/extendInstallOptions.ts"],"names":[],"mappings":"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"}
|
package/lib/install/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ProjectOptions } from '@pnpm/get-context';
|
|
2
|
-
import { PinnedVersion, WantedDependency } from '@pnpm/resolve-dependencies
|
|
2
|
+
import { PinnedVersion, WantedDependency } from '@pnpm/resolve-dependencies';
|
|
3
3
|
import { PreferredVersions } from '@pnpm/resolver-base';
|
|
4
4
|
import { DependenciesField, PackageExtension, PeerDependencyIssues, PeerDependencyRules, ProjectManifest, ReadPackageHook } from '@pnpm/types';
|
|
5
5
|
import { InstallOptions } from './extendInstallOptions';
|
package/lib/install/index.js
CHANGED
|
@@ -46,8 +46,7 @@ const modules_yaml_1 = require("@pnpm/modules-yaml");
|
|
|
46
46
|
const read_modules_dir_1 = __importDefault(require("@pnpm/read-modules-dir"));
|
|
47
47
|
const read_project_manifest_1 = require("@pnpm/read-project-manifest");
|
|
48
48
|
const remove_bins_1 = require("@pnpm/remove-bins");
|
|
49
|
-
const resolve_dependencies_1 =
|
|
50
|
-
const getWantedDependencies_1 = __importDefault(require("@pnpm/resolve-dependencies/lib/getWantedDependencies"));
|
|
49
|
+
const resolve_dependencies_1 = __importStar(require("@pnpm/resolve-dependencies"));
|
|
51
50
|
const rimraf_1 = __importDefault(require("@zkochan/rimraf"));
|
|
52
51
|
const is_inner_link_1 = __importDefault(require("is-inner-link"));
|
|
53
52
|
const p_filter_1 = __importDefault(require("p-filter"));
|
|
@@ -75,21 +74,19 @@ const BROKEN_LOCKFILE_INTEGRITY_ERRORS = new Set([
|
|
|
75
74
|
]);
|
|
76
75
|
const DEV_PREINSTALL = 'pnpm:devPreinstall';
|
|
77
76
|
async function install(manifest, opts) {
|
|
78
|
-
var _a;
|
|
79
77
|
const projects = await mutateModules([
|
|
80
78
|
{
|
|
81
79
|
buildIndex: 0,
|
|
82
80
|
manifest,
|
|
83
81
|
mutation: 'install',
|
|
84
|
-
rootDir:
|
|
82
|
+
rootDir: opts.dir ?? process.cwd(),
|
|
85
83
|
},
|
|
86
84
|
], opts);
|
|
87
85
|
return projects[0].manifest;
|
|
88
86
|
}
|
|
89
87
|
exports.install = install;
|
|
90
88
|
async function mutateModules(projects, maybeOpts) {
|
|
91
|
-
|
|
92
|
-
const reporter = maybeOpts === null || maybeOpts === void 0 ? void 0 : maybeOpts.reporter;
|
|
89
|
+
const reporter = maybeOpts?.reporter;
|
|
93
90
|
if ((reporter != null) && typeof reporter === 'function') {
|
|
94
91
|
logger_1.streamParser.on('data', reporter);
|
|
95
92
|
}
|
|
@@ -99,10 +96,10 @@ async function mutateModules(projects, maybeOpts) {
|
|
|
99
96
|
}
|
|
100
97
|
const installsOnly = projects.every((project) => project.mutation === 'install');
|
|
101
98
|
opts['forceNewModules'] = installsOnly;
|
|
102
|
-
const rootProjectManifest =
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
99
|
+
const rootProjectManifest = projects.find(({ rootDir }) => rootDir === opts.lockfileDir)?.manifest ??
|
|
100
|
+
// When running install/update on a subset of projects, the root project might not be included,
|
|
101
|
+
// so reading its manifest explicitly here.
|
|
102
|
+
await (0, read_project_manifest_1.safeReadProjectManifestOnly)(opts.lockfileDir);
|
|
106
103
|
opts.hooks.readPackage = createReadPackageHook({
|
|
107
104
|
readPackageHook: opts.hooks.readPackage,
|
|
108
105
|
overrides: opts.overrides,
|
|
@@ -111,7 +108,7 @@ async function mutateModules(projects, maybeOpts) {
|
|
|
111
108
|
peerDependencyRules: opts.peerDependencyRules,
|
|
112
109
|
});
|
|
113
110
|
const ctx = await (0, get_context_1.default)(projects, opts);
|
|
114
|
-
const pruneVirtualStore =
|
|
111
|
+
const pruneVirtualStore = ctx.modulesFile?.prunedAt && opts.modulesCacheMaxAge > 0
|
|
115
112
|
? cacheExpired(ctx.modulesFile.prunedAt, opts.modulesCacheMaxAge)
|
|
116
113
|
: true;
|
|
117
114
|
if (!maybeOpts.ignorePackageManifest) {
|
|
@@ -127,7 +124,6 @@ async function mutateModules(projects, maybeOpts) {
|
|
|
127
124
|
}
|
|
128
125
|
return result;
|
|
129
126
|
async function _install() {
|
|
130
|
-
var _a, _b, _c, _d, _e, _f;
|
|
131
127
|
const scriptsOpts = {
|
|
132
128
|
extraBinPaths: opts.extraBinPaths,
|
|
133
129
|
rawConfig: opts.rawConfig,
|
|
@@ -138,7 +134,7 @@ async function mutateModules(projects, maybeOpts) {
|
|
|
138
134
|
storeController: opts.storeController,
|
|
139
135
|
unsafePerm: opts.unsafePerm || false,
|
|
140
136
|
};
|
|
141
|
-
if (!opts.ignoreScripts && !opts.ignorePackageManifest &&
|
|
137
|
+
if (!opts.ignoreScripts && !opts.ignorePackageManifest && rootProjectManifest?.scripts?.[DEV_PREINSTALL]) {
|
|
142
138
|
await (0, lifecycle_1.default)(DEV_PREINSTALL, rootProjectManifest, {
|
|
143
139
|
...scriptsOpts,
|
|
144
140
|
depPath: opts.lockfileDir,
|
|
@@ -146,7 +142,7 @@ async function mutateModules(projects, maybeOpts) {
|
|
|
146
142
|
rootModulesDir: ctx.rootModulesDir,
|
|
147
143
|
});
|
|
148
144
|
}
|
|
149
|
-
const packageExtensionsChecksum = (0, isEmpty_1.default)(
|
|
145
|
+
const packageExtensionsChecksum = (0, isEmpty_1.default)(opts.packageExtensions ?? {}) ? undefined : createObjectChecksum(opts.packageExtensions);
|
|
150
146
|
let needsFullResolution = !maybeOpts.ignorePackageManifest &&
|
|
151
147
|
lockfileIsUpToDate(ctx.wantedLockfile, {
|
|
152
148
|
overrides: opts.overrides,
|
|
@@ -206,7 +202,7 @@ async function mutateModules(projects, maybeOpts) {
|
|
|
206
202
|
pnpmVersion: opts.packageManager.name === 'pnpm' ? opts.packageManager.version : '',
|
|
207
203
|
},
|
|
208
204
|
projects: ctx.projects,
|
|
209
|
-
prunedAt:
|
|
205
|
+
prunedAt: ctx.modulesFile?.prunedAt,
|
|
210
206
|
pruneVirtualStore,
|
|
211
207
|
wantedLockfile: maybeOpts.ignorePackageManifest ? undefined : ctx.wantedLockfile,
|
|
212
208
|
});
|
|
@@ -248,7 +244,7 @@ async function mutateModules(projects, maybeOpts) {
|
|
|
248
244
|
case 'install': {
|
|
249
245
|
await installCase({
|
|
250
246
|
...project,
|
|
251
|
-
updatePackageManifest:
|
|
247
|
+
updatePackageManifest: opts.updatePackageManifest ?? opts.update,
|
|
252
248
|
});
|
|
253
249
|
break;
|
|
254
250
|
}
|
|
@@ -278,8 +274,8 @@ async function mutateModules(projects, maybeOpts) {
|
|
|
278
274
|
break;
|
|
279
275
|
}
|
|
280
276
|
case 'unlinkSome': {
|
|
281
|
-
if (
|
|
282
|
-
await (0, remove_bins_1.removeBin)(path_1.default.join(opts.globalBin,
|
|
277
|
+
if (project.manifest?.name && opts.globalBin) {
|
|
278
|
+
await (0, remove_bins_1.removeBin)(path_1.default.join(opts.globalBin, project.manifest?.name));
|
|
283
279
|
}
|
|
284
280
|
const packagesToInstall = [];
|
|
285
281
|
const allDeps = (0, manifest_utils_1.getAllDependenciesFromManifest)(project.manifest);
|
|
@@ -317,17 +313,16 @@ async function mutateModules(projects, maybeOpts) {
|
|
|
317
313
|
}
|
|
318
314
|
}
|
|
319
315
|
async function installCase(project) {
|
|
320
|
-
|
|
321
|
-
const wantedDependencies = (0, getWantedDependencies_1.default)(project.manifest, {
|
|
316
|
+
const wantedDependencies = (0, resolve_dependencies_1.getWantedDependencies)(project.manifest, {
|
|
322
317
|
includeDirect: opts.includeDirect,
|
|
323
318
|
updateWorkspaceDependencies: opts.update,
|
|
324
319
|
nodeExecPath: opts.nodeExecPath,
|
|
325
320
|
})
|
|
326
321
|
.map((wantedDependency) => ({ ...wantedDependency, updateSpec: true }));
|
|
327
|
-
if (
|
|
322
|
+
if (ctx.wantedLockfile?.importers) {
|
|
328
323
|
forgetResolutionsOfPrevWantedDeps(ctx.wantedLockfile.importers[project.id], wantedDependencies);
|
|
329
324
|
}
|
|
330
|
-
if (opts.ignoreScripts &&
|
|
325
|
+
if (opts.ignoreScripts && project.manifest?.scripts &&
|
|
331
326
|
(project.manifest.scripts.preinstall ||
|
|
332
327
|
project.manifest.scripts.install ||
|
|
333
328
|
project.manifest.scripts.postinstall ||
|
|
@@ -383,10 +378,9 @@ async function mutateModules(projects, maybeOpts) {
|
|
|
383
378
|
}
|
|
384
379
|
exports.mutateModules = mutateModules;
|
|
385
380
|
function lockfileIsUpToDate(lockfile, { neverBuiltDependencies, onlyBuiltDependencies, overrides, packageExtensionsChecksum, }) {
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
!(0, equals_1.default)(
|
|
389
|
-
!(0, equals_1.default)(onlyBuiltDependencies === null || onlyBuiltDependencies === void 0 ? void 0 : onlyBuiltDependencies.sort(), lockfile.onlyBuiltDependencies) ||
|
|
381
|
+
return !(0, equals_1.default)(lockfile.overrides ?? {}, overrides ?? {}) ||
|
|
382
|
+
!(0, equals_1.default)((lockfile.neverBuiltDependencies ?? []).sort(), (neverBuiltDependencies ?? []).sort()) ||
|
|
383
|
+
!(0, equals_1.default)(onlyBuiltDependencies?.sort(), lockfile.onlyBuiltDependencies) ||
|
|
390
384
|
lockfile.packageExtensionsChecksum !== packageExtensionsChecksum;
|
|
391
385
|
}
|
|
392
386
|
function createObjectChecksum(obj) {
|
|
@@ -396,10 +390,10 @@ function createObjectChecksum(obj) {
|
|
|
396
390
|
exports.createObjectChecksum = createObjectChecksum;
|
|
397
391
|
function createReadPackageHook({ lockfileDir, overrides, packageExtensions, peerDependencyRules, readPackageHook, }) {
|
|
398
392
|
const hooks = [];
|
|
399
|
-
if (!(0, isEmpty_1.default)(overrides
|
|
393
|
+
if (!(0, isEmpty_1.default)(overrides ?? {})) {
|
|
400
394
|
hooks.push((0, createVersionsOverrider_1.default)(overrides, lockfileDir));
|
|
401
395
|
}
|
|
402
|
-
if (!(0, isEmpty_1.default)(packageExtensions
|
|
396
|
+
if (!(0, isEmpty_1.default)(packageExtensions ?? {})) {
|
|
403
397
|
hooks.push((0, createPackageExtender_1.default)(packageExtensions));
|
|
404
398
|
}
|
|
405
399
|
if (peerDependencyRules != null &&
|
|
@@ -426,23 +420,21 @@ async function isExternalLink(storeDir, modules, pkgName) {
|
|
|
426
420
|
return !link.isInner;
|
|
427
421
|
}
|
|
428
422
|
function pkgHasDependencies(manifest) {
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
Object.keys(
|
|
432
|
-
Object.keys((_c = manifest.optionalDependencies) !== null && _c !== void 0 ? _c : {}).length);
|
|
423
|
+
return Boolean((Object.keys(manifest.dependencies ?? {}).length > 0) ||
|
|
424
|
+
Object.keys(manifest.devDependencies ?? {}).length ||
|
|
425
|
+
Object.keys(manifest.optionalDependencies ?? {}).length);
|
|
433
426
|
}
|
|
434
427
|
// If the specifier is new, the old resolution probably does not satisfy it anymore.
|
|
435
428
|
// By removing these resolutions we ensure that they are resolved again using the new specs.
|
|
436
429
|
function forgetResolutionsOfPrevWantedDeps(importer, wantedDeps) {
|
|
437
|
-
var _a, _b, _c, _d;
|
|
438
430
|
if (!importer.specifiers)
|
|
439
431
|
return;
|
|
440
|
-
importer.dependencies =
|
|
441
|
-
importer.devDependencies =
|
|
442
|
-
importer.optionalDependencies =
|
|
432
|
+
importer.dependencies = importer.dependencies ?? {};
|
|
433
|
+
importer.devDependencies = importer.devDependencies ?? {};
|
|
434
|
+
importer.optionalDependencies = importer.optionalDependencies ?? {};
|
|
443
435
|
for (const { alias, pref } of wantedDeps) {
|
|
444
436
|
if (alias && importer.specifiers[alias] !== pref) {
|
|
445
|
-
if (!
|
|
437
|
+
if (!importer.dependencies[alias]?.startsWith('link:')) {
|
|
446
438
|
delete importer.dependencies[alias];
|
|
447
439
|
}
|
|
448
440
|
delete importer.devDependencies[alias];
|
|
@@ -451,7 +443,6 @@ function forgetResolutionsOfPrevWantedDeps(importer, wantedDeps) {
|
|
|
451
443
|
}
|
|
452
444
|
}
|
|
453
445
|
async function addDependenciesToPackage(manifest, dependencySelectors, opts) {
|
|
454
|
-
var _a, _b;
|
|
455
446
|
const projects = await mutateModules([
|
|
456
447
|
{
|
|
457
448
|
allowNew: opts.allowNew,
|
|
@@ -460,18 +451,17 @@ async function addDependenciesToPackage(manifest, dependencySelectors, opts) {
|
|
|
460
451
|
mutation: 'installSome',
|
|
461
452
|
peer: opts.peer,
|
|
462
453
|
pinnedVersion: opts.pinnedVersion,
|
|
463
|
-
rootDir:
|
|
454
|
+
rootDir: opts.dir ?? process.cwd(),
|
|
464
455
|
targetDependenciesField: opts.targetDependenciesField,
|
|
465
456
|
},
|
|
466
457
|
], {
|
|
467
458
|
...opts,
|
|
468
|
-
lockfileDir:
|
|
459
|
+
lockfileDir: opts.lockfileDir ?? opts.dir,
|
|
469
460
|
});
|
|
470
461
|
return projects[0].manifest;
|
|
471
462
|
}
|
|
472
463
|
exports.addDependenciesToPackage = addDependenciesToPackage;
|
|
473
464
|
const _installInContext = async (projects, ctx, opts) => {
|
|
474
|
-
var _a, _b, _c, _d, _e, _f;
|
|
475
465
|
if (opts.lockfileOnly && ctx.existsCurrentLockfile) {
|
|
476
466
|
logger_1.default.warn({
|
|
477
467
|
message: '`node_modules` is present. Lockfile only installation will make it out-of-date',
|
|
@@ -506,7 +496,7 @@ const _installInContext = async (projects, ctx, opts) => {
|
|
|
506
496
|
prefix: ctx.lockfileDir,
|
|
507
497
|
stage: 'resolution_started',
|
|
508
498
|
});
|
|
509
|
-
const preferredVersions =
|
|
499
|
+
const preferredVersions = opts.preferredVersions ?? ((!opts.update &&
|
|
510
500
|
(ctx.wantedLockfile.packages != null) &&
|
|
511
501
|
!(0, isEmpty_1.default)(ctx.wantedLockfile.packages))
|
|
512
502
|
? (0, getPreferredVersions_1.getPreferredVersionsFromLockfile)(ctx.wantedLockfile.packages)
|
|
@@ -541,7 +531,7 @@ const _installInContext = async (projects, ctx, opts) => {
|
|
|
541
531
|
force: opts.force,
|
|
542
532
|
forceFullResolution,
|
|
543
533
|
hooks: opts.hooks,
|
|
544
|
-
linkWorkspacePackagesDepth:
|
|
534
|
+
linkWorkspacePackagesDepth: opts.linkWorkspacePackagesDepth ?? (opts.saveWorkspaceProtocol ? 0 : -1),
|
|
545
535
|
lockfileDir: opts.lockfileDir,
|
|
546
536
|
nodeVersion: opts.nodeVersion,
|
|
547
537
|
pnpmVersion: opts.packageManager.name === 'pnpm' ? opts.packageManager.version : '',
|
|
@@ -561,8 +551,8 @@ const _installInContext = async (projects, ctx, opts) => {
|
|
|
561
551
|
prefix: ctx.lockfileDir,
|
|
562
552
|
stage: 'resolution_done',
|
|
563
553
|
});
|
|
564
|
-
newLockfile = ((
|
|
565
|
-
? await
|
|
554
|
+
newLockfile = ((opts.hooks?.afterAllResolved) != null)
|
|
555
|
+
? await opts.hooks?.afterAllResolved(newLockfile)
|
|
566
556
|
: newLockfile;
|
|
567
557
|
if (opts.updateLockfileMinorVersion) {
|
|
568
558
|
newLockfile.lockfileVersion = constants_1.LOCKFILE_VERSION;
|
|
@@ -575,7 +565,6 @@ const _installInContext = async (projects, ctx, opts) => {
|
|
|
575
565
|
dependenciesByProjectId,
|
|
576
566
|
depsStateCache,
|
|
577
567
|
force: opts.force,
|
|
578
|
-
extendNodePath: opts.extendNodePath,
|
|
579
568
|
hoistedDependencies: ctx.hoistedDependencies,
|
|
580
569
|
hoistedModulesDir: ctx.hoistedModulesDir,
|
|
581
570
|
hoistPattern: ctx.hoistPattern,
|
|
@@ -599,7 +588,7 @@ const _installInContext = async (projects, ctx, opts) => {
|
|
|
599
588
|
});
|
|
600
589
|
await finishLockfileUpdates();
|
|
601
590
|
if (opts.enablePnp) {
|
|
602
|
-
const importerNames = (0, fromPairs_1.default)(projects.map(({ manifest, id }) =>
|
|
591
|
+
const importerNames = (0, fromPairs_1.default)(projects.map(({ manifest, id }) => [id, manifest.name ?? id]));
|
|
603
592
|
await (0, lockfile_to_pnp_1.writePnpFile)(result.currentLockfile, {
|
|
604
593
|
importerNames,
|
|
605
594
|
lockfileDir: ctx.lockfileDir,
|
|
@@ -615,7 +604,7 @@ const _installInContext = async (projects, ctx, opts) => {
|
|
|
615
604
|
.concat(result.newDepPaths
|
|
616
605
|
.filter((depPath) => dependenciesGraph[depPath].requiresBuild));
|
|
617
606
|
}
|
|
618
|
-
else if (
|
|
607
|
+
else if (result.newDepPaths?.length) {
|
|
619
608
|
// postinstall hooks
|
|
620
609
|
const depPaths = Object.keys(dependenciesGraph);
|
|
621
610
|
const rootNodes = depPaths.filter((depPath) => dependenciesGraph[depPath].depth === 0);
|
|
@@ -627,7 +616,6 @@ const _installInContext = async (projects, ctx, opts) => {
|
|
|
627
616
|
childConcurrency: opts.childConcurrency,
|
|
628
617
|
depsStateCache,
|
|
629
618
|
depsToBuild: new Set(result.newDepPaths),
|
|
630
|
-
extendNodePath: opts.extendNodePath,
|
|
631
619
|
extraBinPaths: ctx.extraBinPaths,
|
|
632
620
|
extraEnv,
|
|
633
621
|
lockfileDir: ctx.lockfileDir,
|
|
@@ -644,7 +632,7 @@ const _installInContext = async (projects, ctx, opts) => {
|
|
|
644
632
|
});
|
|
645
633
|
}
|
|
646
634
|
const binWarn = (prefix, message) => logger_1.default.info({ message, prefix });
|
|
647
|
-
if (
|
|
635
|
+
if (result.newDepPaths?.length) {
|
|
648
636
|
const newPkgs = (0, props_1.default)(result.newDepPaths, dependenciesGraph);
|
|
649
637
|
await linkAllBins(newPkgs, dependenciesGraph, {
|
|
650
638
|
optional: opts.include.optionalDependencies,
|
|
@@ -652,10 +640,9 @@ const _installInContext = async (projects, ctx, opts) => {
|
|
|
652
640
|
});
|
|
653
641
|
}
|
|
654
642
|
await Promise.all(projects.map(async (project, index) => {
|
|
655
|
-
var _a, _b;
|
|
656
643
|
let linkedPackages;
|
|
657
|
-
if (
|
|
658
|
-
const nodeExecPathByAlias = Object.entries(
|
|
644
|
+
if (ctx.publicHoistPattern?.length && path_1.default.relative(project.rootDir, opts.lockfileDir) === '') {
|
|
645
|
+
const nodeExecPathByAlias = Object.entries(project.manifest.dependenciesMeta ?? {})
|
|
659
646
|
.reduce((prev, [alias, { node }]) => {
|
|
660
647
|
if (node) {
|
|
661
648
|
prev[alias] = node;
|
|
@@ -664,7 +651,6 @@ const _installInContext = async (projects, ctx, opts) => {
|
|
|
664
651
|
}, {});
|
|
665
652
|
linkedPackages = await (0, link_bins_1.default)(project.modulesDir, project.binsDir, {
|
|
666
653
|
allowExoticManifests: true,
|
|
667
|
-
extendNodePath: opts.extendNodePath,
|
|
668
654
|
projectManifest: project.manifest,
|
|
669
655
|
nodeExecPathByAlias,
|
|
670
656
|
warn: binWarn.bind(null, project.rootDir),
|
|
@@ -679,11 +665,10 @@ const _installInContext = async (projects, ctx, opts) => {
|
|
|
679
665
|
})),
|
|
680
666
|
];
|
|
681
667
|
linkedPackages = await (0, link_bins_1.linkBinsOfPackages)((await Promise.all(directPkgs.map(async (dep) => {
|
|
682
|
-
|
|
683
|
-
const manifest = (_b = await ((_a = dep.fetchingBundledManifest) === null || _a === void 0 ? void 0 : _a.call(dep))) !== null && _b !== void 0 ? _b : await (0, read_project_manifest_1.safeReadProjectManifestOnly)(dep.dir);
|
|
668
|
+
const manifest = await dep.fetchingBundledManifest?.() ?? await (0, read_project_manifest_1.safeReadProjectManifestOnly)(dep.dir);
|
|
684
669
|
let nodeExecPath;
|
|
685
|
-
if (manifest
|
|
686
|
-
nodeExecPath =
|
|
670
|
+
if (manifest?.name) {
|
|
671
|
+
nodeExecPath = project.manifest.dependenciesMeta?.[manifest.name]?.node;
|
|
687
672
|
}
|
|
688
673
|
return {
|
|
689
674
|
location: dep.dir,
|
|
@@ -691,12 +676,12 @@ const _installInContext = async (projects, ctx, opts) => {
|
|
|
691
676
|
nodeExecPath,
|
|
692
677
|
};
|
|
693
678
|
})))
|
|
694
|
-
.filter(({ manifest }) => manifest != null), project.binsDir
|
|
679
|
+
.filter(({ manifest }) => manifest != null), project.binsDir);
|
|
695
680
|
}
|
|
696
681
|
const projectToInstall = projects[index];
|
|
697
682
|
if (opts.global && projectToInstall.mutation.includes('install')) {
|
|
698
683
|
projectToInstall.wantedDependencies.forEach(pkg => {
|
|
699
|
-
if (!
|
|
684
|
+
if (!linkedPackages?.includes(pkg.alias)) {
|
|
700
685
|
logger_1.default.warn({ message: `${pkg.alias} has no binaries`, prefix: opts.lockfileDir });
|
|
701
686
|
}
|
|
702
687
|
});
|
|
@@ -793,7 +778,6 @@ function createAllowBuildFunction(opts) {
|
|
|
793
778
|
return undefined;
|
|
794
779
|
}
|
|
795
780
|
const installInContext = async (projects, ctx, opts) => {
|
|
796
|
-
var _a;
|
|
797
781
|
try {
|
|
798
782
|
if (opts.nodeLinker === 'hoisted' && !opts.lockfileOnly) {
|
|
799
783
|
const result = await _installInContext(projects, ctx, {
|
|
@@ -808,7 +792,7 @@ const installInContext = async (projects, ctx, opts) => {
|
|
|
808
792
|
pnpmVersion: opts.packageManager.name === 'pnpm' ? opts.packageManager.version : '',
|
|
809
793
|
},
|
|
810
794
|
projects: ctx.projects,
|
|
811
|
-
prunedAt:
|
|
795
|
+
prunedAt: ctx.modulesFile?.prunedAt,
|
|
812
796
|
wantedLockfile: result.newLockfile,
|
|
813
797
|
});
|
|
814
798
|
return result;
|