nvm-vanilla 1.0.16 → 1.0.18
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/package.json +1 -1
- package/src/index.js +27 -8
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -211,9 +211,23 @@ const clear = async (dir) => {
|
|
|
211
211
|
}
|
|
212
212
|
};
|
|
213
213
|
|
|
214
|
+
const getNodePackageFilePath = (baseDir, name) => {
|
|
215
|
+
if (process.platform === 'win32') {
|
|
216
|
+
return path.join(baseDir, name, 'prefix', 'node_modules', nodePackageName, 'package.json');
|
|
217
|
+
}
|
|
218
|
+
return path.join(baseDir, name, 'prefix', 'lib', 'node_modules', nodePackageName, 'package.json');
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
const getPrefixBinDir = (baseDir, name) => {
|
|
222
|
+
if (process.platform === 'win32') {
|
|
223
|
+
return path.join(baseDir, name, 'prefix');
|
|
224
|
+
}
|
|
225
|
+
return path.join(baseDir, name, 'prefix', 'bin');
|
|
226
|
+
};
|
|
227
|
+
|
|
214
228
|
const getLocalNodeVersion = async (baseDir, name) => {
|
|
215
229
|
let aliasFile = path.join(baseDir, name);
|
|
216
|
-
let packageFile =
|
|
230
|
+
let packageFile = getNodePackageFilePath(baseDir, name);
|
|
217
231
|
|
|
218
232
|
let [
|
|
219
233
|
aliasVersion,
|
|
@@ -224,7 +238,7 @@ const getLocalNodeVersion = async (baseDir, name) => {
|
|
|
224
238
|
]);
|
|
225
239
|
|
|
226
240
|
if (aliasVersion) {
|
|
227
|
-
packageFile =
|
|
241
|
+
packageFile = getNodePackageFilePath(baseDir, aliasVersion);
|
|
228
242
|
packageData = await readJsonFile(packageFile).catch(() => { });
|
|
229
243
|
}
|
|
230
244
|
|
|
@@ -345,6 +359,10 @@ const init = async (baseDir, version) => {
|
|
|
345
359
|
const uninstall = async (baseDir, version) => {
|
|
346
360
|
const workDir = path.join(baseDir, version);
|
|
347
361
|
|
|
362
|
+
try {
|
|
363
|
+
await promisify(fs.unlink)(workDir);
|
|
364
|
+
} catch (_) { }
|
|
365
|
+
|
|
348
366
|
try {
|
|
349
367
|
await clear(workDir);
|
|
350
368
|
} catch (_) { }
|
|
@@ -352,8 +370,7 @@ const uninstall = async (baseDir, version) => {
|
|
|
352
370
|
|
|
353
371
|
const which = async (baseDir, name) => {
|
|
354
372
|
const version = await getLocalNodeVersion(baseDir, name);
|
|
355
|
-
|
|
356
|
-
return prefixDir;
|
|
373
|
+
return getPrefixBinDir(baseDir, version);
|
|
357
374
|
};
|
|
358
375
|
|
|
359
376
|
const use = async (baseDir, version, evalFlag = true) => {
|
|
@@ -363,11 +380,13 @@ const use = async (baseDir, version, evalFlag = true) => {
|
|
|
363
380
|
}
|
|
364
381
|
|
|
365
382
|
// const workDir = path.join(baseDir, version, 'bin');
|
|
366
|
-
|
|
367
383
|
// const workDir = path.join(baseDir, version, 'node_modules', '.bin');
|
|
368
|
-
|
|
384
|
+
|
|
385
|
+
const prefixDir = path.join(baseDir, version, 'prefix');
|
|
369
386
|
const cacheDir = path.join(baseDir, version, 'cache');
|
|
370
387
|
|
|
388
|
+
const prefixBinDir = getPrefixBinDir(baseDir, version);
|
|
389
|
+
|
|
371
390
|
const resetFlag = version === 'system';
|
|
372
391
|
|
|
373
392
|
// let checkFlag = false;
|
|
@@ -384,7 +403,7 @@ const use = async (baseDir, version, evalFlag = true) => {
|
|
|
384
403
|
|
|
385
404
|
list = list.filter(item => item.indexOf(baseDir) === -1);
|
|
386
405
|
|
|
387
|
-
if (!resetFlag) list.unshift(
|
|
406
|
+
if (!resetFlag) list.unshift(prefixBinDir);
|
|
388
407
|
|
|
389
408
|
const env = {};
|
|
390
409
|
|
|
@@ -426,7 +445,7 @@ const list = async (baseDir) => {
|
|
|
426
445
|
let versionList = await Promise.all(nameList.map(async name => {
|
|
427
446
|
const version = await getLocalNodeVersion(baseDir, name).catch(() => { });
|
|
428
447
|
if (!version) {
|
|
429
|
-
await uninstall(baseDir,
|
|
448
|
+
await uninstall(baseDir, name);
|
|
430
449
|
return;
|
|
431
450
|
}
|
|
432
451
|
return 'node@' + name + ' (' + version + ')';
|