| Index: ensure_dependencies.py |
| diff --git a/ensure_dependencies.py b/ensure_dependencies.py |
| index 1cbbf09522eef68283123f634370064352ec49f1..63db39758615da380e1fbd73dbd72754a7bcfe9d 100755 |
| --- a/ensure_dependencies.py |
| +++ b/ensure_dependencies.py |
| @@ -47,7 +47,7 @@ SKIP_DEPENDENCY_UPDATES = os.environ.get( |
| NPM_LOCKFILE = '.npm_install_lock' |
| -class Mercurial(): |
| +class Mercurial: |
| def istype(self, repodir): |
| return os.path.exists(os.path.join(repodir, '.hg')) |
| @@ -94,7 +94,7 @@ class Mercurial(): |
| return url |
| -class Git(): |
| +class Git: |
| def istype(self, repodir): |
| return os.path.exists(os.path.join(repodir, '.git')) |
| @@ -278,7 +278,16 @@ def resolve_npm_dependencies(target, vcs): |
| lockfile_path = os.path.join(target, NPM_LOCKFILE) |
| open(lockfile_path, 'a').close() |
| - cmd = ['npm', 'install', '--only=production', '--loglevel=warn', |
| + if os.name == 'nt': |
| + # Windows' CreateProcess() (called by subprocess.Popen()) only |
| + # resolves executables ending in .exe. The windows installation of |
| + # Node.js only provides a npm.cmd, which is executable but won't |
| + # be recognized as such by CreateProcess(). |
| + npm_exec = 'npm.cmd' |
| + else: |
| + npm_exec = 'npm' |
| + |
| + cmd = [npm_exec, 'install', '--only=production', '--loglevel=warn', |
| '--no-package-lock', '--no-optional'] |
| subprocess.check_output(cmd, cwd=target) |