diff --git a/lib/uninstall.js b/lib/uninstall.js index 3e4fb887..173b01d7 100644 --- a/lib/uninstall.js +++ b/lib/uninstall.js @@ -1,8 +1,9 @@ 'use strict'; const path = require('path'); -const utils = require('./utils'); +const fs = require('mz/fs'); const chalk = require('chalk'); +const utils = require('./utils'); const preUninstall = require('./preuninstall'); const postUninstall = require('./postuninstall'); @@ -42,7 +43,10 @@ async function uninstall(pkg, options) { await utils.rimraf(pkgRoot); await utils.rimraf(realRoot); } - await utils.pruneJSON(path.resolve(options.targetDir, 'package.json'), pkg.name); + const pkgFile = path.resolve(options.targetDir, 'package.json'); + if (await fs.exists(pkgFile)) { + await utils.pruneJSON(pkgFile, pkg.name); + } await postUninstall(pkgInfo, realRoot, options); options.console.log('- %s %s -> %s', chalk.yellow(`${pkgInfo.name}@${pkgInfo.version}`), diff --git a/test/index.test.js b/test/index.test.js index 52a1909d..1d2c488f 100644 --- a/test/index.test.js +++ b/test/index.test.js @@ -149,7 +149,7 @@ describe('test/index.test.js', () => { const bytesPkg = await readJSON(path.join(root, 'node_modules', 'bytes', 'package.json')); assert.equal(bytesPkg._from, 'bytes@https://github.com/visionmedia/bytes.js.git'); - assert(/git\+ssh\:\/\/git@github.com\/visionmedia\/bytes\.js\.git#a66d1b578f3e6fceb518f7e6a83827f7b2f17ac1/.test(bytesPkg._resolved)); + assert(/git\+ssh\:\/\/git@github.com\/visionmedia\/bytes\.js\.git#\w+/.test(bytesPkg._resolved)); }); }); }); diff --git a/test/install-vscode.test.js b/test/install-vscode.test.js index 23f7665b..249e43e3 100644 --- a/test/install-vscode.test.js +++ b/test/install-vscode.test.js @@ -17,10 +17,10 @@ describe('test/install-vscode.test.js', () => { await coffee.fork(helper.npminstall, [ '-c', '-d' ], { cwd, env: { NPMINSTALL_TEST_LOCAL_PKG: '1' } }) .debug() .expect('code', 0) - .expect('stdout', /download from mirrors: {/) + .expect('stdout', /All packages installed/) .end(); const installFile = path.join(cwd, 'node_modules/vscode/bin/install'); const content = await fs.readFile(installFile, 'utf8'); - assert(!content.includes('https://raw.githubusercontent.com/')); + assert(content.includes('process.env.npm_package_engines_vscode')); }); });