@pnpm/plugin-commands-env 4.0.4 → 4.0.6
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/envUse.js +12 -1
- package/lib/envUse.js.map +1 -1
- package/lib/utils.d.ts +1 -0
- package/lib/utils.js +7 -5
- package/lib/utils.js.map +1 -1
- package/package.json +9 -6
package/lib/envUse.js
CHANGED
|
@@ -10,6 +10,8 @@ const error_1 = require("@pnpm/error");
|
|
|
10
10
|
const fetch_1 = require("@pnpm/fetch");
|
|
11
11
|
const node_resolver_1 = require("@pnpm/node.resolver");
|
|
12
12
|
const cmd_shim_1 = __importDefault(require("@zkochan/cmd-shim"));
|
|
13
|
+
const is_windows_1 = __importDefault(require("is-windows"));
|
|
14
|
+
const symlink_dir_1 = __importDefault(require("symlink-dir"));
|
|
13
15
|
const node_1 = require("./node");
|
|
14
16
|
const getNodeMirror_1 = require("./getNodeMirror");
|
|
15
17
|
const parseNodeEditionSpecifier_1 = require("./parseNodeEditionSpecifier");
|
|
@@ -32,11 +34,12 @@ async function envUse(opts, params) {
|
|
|
32
34
|
});
|
|
33
35
|
const src = (0, utils_1.getNodeExecPathInNodeDir)(nodeDir);
|
|
34
36
|
const dest = (0, utils_1.getNodeExecPathInBinDir)(opts.bin);
|
|
37
|
+
await (0, symlink_dir_1.default)(nodeDir, path_1.default.join(opts.pnpmHomeDir, utils_1.CURRENT_NODE_DIRNAME));
|
|
35
38
|
try {
|
|
36
39
|
await fs_1.promises.unlink(dest);
|
|
37
40
|
}
|
|
38
41
|
catch (err) { }
|
|
39
|
-
await
|
|
42
|
+
await symlinkOrHardLink(src, dest);
|
|
40
43
|
try {
|
|
41
44
|
let npmDir = nodeDir;
|
|
42
45
|
if (process.platform !== 'win32') {
|
|
@@ -60,4 +63,12 @@ async function envUse(opts, params) {
|
|
|
60
63
|
${dest} -> ${src}`;
|
|
61
64
|
}
|
|
62
65
|
exports.envUse = envUse;
|
|
66
|
+
// On Windows, symlinks only work with developer mode enabled
|
|
67
|
+
// or with admin permissions. So it is better to use hard links on Windows.
|
|
68
|
+
async function symlinkOrHardLink(existingPath, newPath) {
|
|
69
|
+
if ((0, is_windows_1.default)()) {
|
|
70
|
+
return fs_1.promises.link(existingPath, newPath);
|
|
71
|
+
}
|
|
72
|
+
return fs_1.promises.symlink(existingPath, newPath, 'file');
|
|
73
|
+
}
|
|
63
74
|
//# sourceMappingURL=envUse.js.map
|
package/lib/envUse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envUse.js","sourceRoot":"","sources":["../src/envUse.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAmC;AACnC,gDAAuB;AACvB,uCAAuC;AACvC,uCAAqD;AACrD,uDAAwD;AACxD,iEAAuC;AACvC,iCAA+D;AAC/D,mDAA+C;AAC/C,2EAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"envUse.js","sourceRoot":"","sources":["../src/envUse.ts"],"names":[],"mappings":"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"}
|
package/lib/utils.d.ts
CHANGED
package/lib/utils.js
CHANGED
|
@@ -3,19 +3,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getNodeExecPathInNodeDir = exports.getNodeExecPathInBinDir = exports.getNodeExecPathAndTargetDir = void 0;
|
|
6
|
+
exports.getNodeExecPathInNodeDir = exports.getNodeExecPathInBinDir = exports.getNodeExecPathAndTargetDir = exports.CURRENT_NODE_DIRNAME = void 0;
|
|
7
7
|
const fs_1 = require("fs");
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
|
+
exports.CURRENT_NODE_DIRNAME = 'nodejs_current';
|
|
9
10
|
async function getNodeExecPathAndTargetDir(pnpmHomeDir) {
|
|
10
11
|
const nodePath = getNodeExecPathInBinDir(pnpmHomeDir);
|
|
11
|
-
|
|
12
|
+
const nodeCurrentDirLink = path_1.default.join(pnpmHomeDir, exports.CURRENT_NODE_DIRNAME);
|
|
13
|
+
let nodeCurrentDir;
|
|
12
14
|
try {
|
|
13
|
-
|
|
15
|
+
nodeCurrentDir = await fs_1.promises.readlink(nodeCurrentDirLink);
|
|
14
16
|
}
|
|
15
17
|
catch (err) {
|
|
16
|
-
|
|
18
|
+
nodeCurrentDir = undefined;
|
|
17
19
|
}
|
|
18
|
-
return { nodePath, nodeLink };
|
|
20
|
+
return { nodePath, nodeLink: nodeCurrentDir ? getNodeExecPathInNodeDir(nodeCurrentDir) : undefined };
|
|
19
21
|
}
|
|
20
22
|
exports.getNodeExecPathAndTargetDir = getNodeExecPathAndTargetDir;
|
|
21
23
|
function getNodeExecPathInBinDir(pnpmHomeDir) {
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAmC;AACnC,gDAAuB;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAmC;AACnC,gDAAuB;AAEV,QAAA,oBAAoB,GAAG,gBAAgB,CAAA;AAE7C,KAAK,UAAU,2BAA2B,CAAE,WAAmB;IACpE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAA;IACrD,MAAM,kBAAkB,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,4BAAoB,CAAC,CAAA;IACvE,IAAI,cAAkC,CAAA;IACtC,IAAI;QACF,cAAc,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;KACvD;IAAC,OAAO,GAAG,EAAE;QACZ,cAAc,GAAG,SAAS,CAAA;KAC3B;IACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;AACtG,CAAC;AAVD,kEAUC;AAED,SAAgB,uBAAuB,CAAE,WAAmB;IAC1D,OAAO,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AACtF,CAAC;AAFD,0DAEC;AAED,SAAgB,wBAAwB,CAAE,OAAe;IACvD,OAAO,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;AACnF,CAAC;AAFD,4DAEC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pnpm/plugin-commands-env",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.6",
|
|
4
4
|
"description": "pnpm commands for managing Node.js",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -26,29 +26,32 @@
|
|
|
26
26
|
"@pnpm/logger": "^5.0.0",
|
|
27
27
|
"@zkochan/cmd-shim": "^6.0.0",
|
|
28
28
|
"@zkochan/rimraf": "^2.1.2",
|
|
29
|
+
"is-windows": "^1.0.2",
|
|
29
30
|
"load-json-file": "^6.2.0",
|
|
30
31
|
"render-help": "^1.0.3",
|
|
31
|
-
"semver": "^7.
|
|
32
|
+
"semver": "^7.4.0",
|
|
33
|
+
"symlink-dir": "^5.1.1",
|
|
32
34
|
"write-json-file": "^4.3.0",
|
|
33
|
-
"@pnpm/cli-utils": "2.0.
|
|
34
|
-
"@pnpm/config": "18.
|
|
35
|
+
"@pnpm/cli-utils": "2.0.6",
|
|
36
|
+
"@pnpm/config": "18.3.0",
|
|
35
37
|
"@pnpm/error": "5.0.0",
|
|
36
38
|
"@pnpm/fetch": "7.0.0",
|
|
37
39
|
"@pnpm/node.fetcher": "3.0.0",
|
|
38
|
-
"@pnpm/node.resolver": "2.0.
|
|
40
|
+
"@pnpm/node.resolver": "2.0.1",
|
|
39
41
|
"@pnpm/remove-bins": "5.0.0",
|
|
40
42
|
"@pnpm/store-path": "8.0.0"
|
|
41
43
|
},
|
|
42
44
|
"funding": "https://opencollective.com/pnpm",
|
|
43
45
|
"devDependencies": {
|
|
44
46
|
"@types/adm-zip": "^0.5.0",
|
|
47
|
+
"@types/is-windows": "^1.0.0",
|
|
45
48
|
"@types/semver": "7.3.13",
|
|
46
49
|
"adm-zip": "^0.5.10",
|
|
47
50
|
"execa": "npm:safe-execa@0.1.2",
|
|
48
51
|
"nock": "13.3.0",
|
|
49
52
|
"node-fetch": "3.0.0-beta.9",
|
|
50
53
|
"path-name": "^1.0.0",
|
|
51
|
-
"@pnpm/plugin-commands-env": "4.0.
|
|
54
|
+
"@pnpm/plugin-commands-env": "4.0.6",
|
|
52
55
|
"@pnpm/prepare": "0.0.65"
|
|
53
56
|
},
|
|
54
57
|
"exports": {
|