From 26bfb9207b0a2b0b8eff41ddda22fcd893798f02 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Tue, 8 Dec 2015 17:20:45 -0500 Subject: [PATCH] feat(deps): running npm update and prune before running the command, closes #75 --- package.json | 2 +- src/next-update.js | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 6540ec6..2717f37 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "is-online": "5.0.0", "lazy-ass": "1.1.0", "lodash": "3.10.1", - "npm-utils": "0.4.0", + "npm-utils": "1.0.0", "optimist": "0.6.1", "q": "2.0.3", "quote": "0.4.0", diff --git a/src/next-update.js b/src/next-update.js index 79885ff..75e5a01 100644 --- a/src/next-update.js +++ b/src/next-update.js @@ -1,12 +1,11 @@ var la = require('lazy-ass'); var check = require('check-more-types'); +var verify = check.verify; require('console.json'); var log = require('debug')('next-update'); var Q = require('q'); Q.longStackSupport = true; -var check = require('check-types'); -var verify = check.verify; var depsOk = require('deps-ok'); var _ = require('lodash'); @@ -17,6 +16,7 @@ var testVersions = require('./test-module-version').testModulesVersions; var runTest = require('./test-module-version').testPromise; var getDependenciesToCheck = require('./dependencies'); var reportAvailable = require('./report-available'); +var npmUtils = require('npm-utils'); var boundConsoleLog = console.log.bind(console); @@ -46,19 +46,26 @@ function checkDependenciesInstalled() { if (depsOk(process.cwd())) { defer.resolve(); } else { - var msg = 'Current installation is not complete. Please run `npm install` or `bower install` first'; + var msg = 'Current installation is incomplete. Please run `npm install` or `bower install` first'; defer.reject(new Error(msg)); } }); return defer.promise; } +function cleanDependencies() { + var update = _.partial(npmUtils.test, 'npm update'); + var prune = _.partial(npmUtils.test, 'npm prune'); + return update().then(prune); +} + function checkCurrentInstall(options) { options = options || {}; var log = options.tldr ? _.noop : boundConsoleLog; log('checking if the current state works'); - return checkDependenciesInstalled() + return cleanDependencies() + .then(checkDependenciesInstalled) .then(function () { return runTest(options, options.testCommand)(); })