npm install:无法在 Windows 10 中安装依赖项

Posted

技术标签:

【中文标题】npm install:无法在 Windows 10 中安装依赖项【英文标题】:npm install : unable to install dependencies in Windows 10 【发布时间】:2017-03-12 00:09:14 【问题描述】:

我使用的是 Windows 10 并安装了 node-v6.9.1-x64。

这是我正在尝试为 android 平台构建的项目link,为此我正在按照那里提到的步骤进行操作,例如:

    首先我已经下载了这个项目并解压到D盘的Ionic文件夹并重命名为IonicUserBase

    其次,我已经安装了 Ionic 和 Cordova,所以我直接开始导航到项目

    第三次安装所有依赖,我用的是:npm install

但无法安装依赖项....请参阅下面的完整日志

D:\>cd Ionic

D:\Ionic>cd IonicUserBase

D:\Ionic\IonicUserBase>npm install
npm WARN deprecated gulp-minify-css@0.3.13: Please use gulp-clean-css
npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
npm WARN deprecated jade@0.26.3: Jade has been renamed to pug, please install the latest version of pug instead of jade
npm WARN deprecated graceful-fs@2.0.3: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.

> node-sass@0.9.6 install D:\Ionic\IonicUserBase\node_modules\node-sass
> node build.js

(node:6292) DeprecationWarning: child_process: options.customFds option is deprecated. Use options.stdio instead.

D:\Ionic\IonicUserBase\node_modules\node-sass>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "" rebuild )
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
gyp ERR! stack     at failNoPython (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:449:14)
gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:404:11
gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:123:15)
gyp ERR! System Windows_NT 10.0.10240
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd D:\Ionic\IonicUserBase\node_modules\node-sass
gyp ERR! node -v v6.9.1
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
Build failed
[                 .] | install: info lifecycle node-sass@0.9.6~install: Failed to exec install script[                 .] | install: info lifecycle node-sass@0.9.6~instAuthenticate.me@1.0.0 D:\Ionic\IonicUserBase
+-- bower@1.7.9
+-- gulp@3.9.1
| +-- archy@1.0.0
| +-- chalk@1.1.3
| | +-- ansi-styles@2.2.1
| | +-- escape-string-regexp@1.0.5
| | +-- has-ansi@2.0.0
| | | `-- ansi-regex@2.0.0
| | +-- strip-ansi@3.0.1
| | `-- supports-color@2.0.0
| +-- deprecated@0.0.1
| +-- interpret@1.0.1
| +-- liftoff@2.3.0
| | +-- extend@3.0.0
| | +-- findup-sync@0.4.3
| | | +-- detect-file@0.1.0
| | | | `-- fs-exists-sync@0.1.0
| | | +-- is-glob@2.0.1
| | | | `-- is-extglob@1.0.0
| | | +-- micromatch@2.3.11
| | | | +-- arr-diff@2.0.0
| | | | | `-- arr-flatten@1.0.1
| | | | +-- array-unique@0.2.1
| | | | +-- braces@1.8.5
| | | | | +-- expand-range@1.8.2
| | | | | | `-- fill-range@2.2.3
| | | | | |   +-- is-number@2.1.0
| | | | | |   +-- isobject@2.1.0
| | | | | |   | `-- isarray@1.0.0
| | | | | |   +-- randomatic@1.1.5
| | | | | |   `-- repeat-string@1.6.1
| | | | | +-- preserve@0.2.0
| | | | | `-- repeat-element@1.1.2
| | | | +-- expand-brackets@0.1.5
| | | | | `-- is-posix-bracket@0.1.1
| | | | +-- extglob@0.3.2
| | | | +-- filename-regex@2.0.0
| | | | +-- kind-of@3.0.4
| | | | | `-- is-buffer@1.1.4
| | | | +-- normalize-path@2.0.1
| | | | +-- object.omit@2.0.1
| | | | | +-- for-own@0.1.4
| | | | | | `-- for-in@0.1.6
| | | | | `-- is-extendable@0.1.1
| | | | +-- parse-glob@3.0.4
| | | | | +-- glob-base@0.3.0
| | | | | | `-- glob-parent@2.0.0
| | | | | `-- is-dotfile@1.0.2
| | | | `-- regex-cache@0.4.3
| | | |   +-- is-equal-shallow@0.1.3
| | | |   `-- is-primitive@2.0.0
| | | `-- resolve-dir@0.1.1
| | |   `-- global-modules@0.2.3
| | |     +-- global-prefix@0.1.4
| | |     | +-- ini@1.3.4
| | |     | +-- osenv@0.1.3
| | |     | | `-- os-tmpdir@1.0.2
| | |     | `-- which@1.2.11
| | |     |   `-- isexe@1.1.2
| | |     `-- is-windows@0.2.0
| | +-- fined@1.0.2
| | | +-- expand-tilde@1.2.2
| | | +-- lodash.assignwith@4.2.0
| | | +-- lodash.isempty@4.4.0
| | | +-- lodash.pick@4.4.0
| | | `-- parse-filepath@1.0.1
| | |   +-- is-absolute@0.2.6
| | |   | `-- is-relative@0.2.1
| | |   |   `-- is-unc-path@0.1.1
| | |   |     `-- unc-path-regex@0.1.2
| | |   +-- map-cache@0.2.2
| | |   `-- path-root@0.1.1
| | |     `-- path-root-regex@0.1.2
| | +-- flagged-respawn@0.3.2
| | +-- lodash.isplainobject@4.0.6
| | +-- lodash.isstring@4.0.1
| | +-- lodash.mapvalues@4.6.0
| | +-- rechoir@0.6.2
| | `-- resolve@1.1.7
| +-- minimist@1.2.0
| +-- orchestrator@0.3.7
| | +-- end-of-stream@0.1.5
| | | `-- once@1.3.3
| | |   `-- wrappy@1.0.2
| | +-- sequencify@0.0.7
| | `-- stream-consume@0.1.0
| +-- pretty-hrtime@1.0.2
| +-- semver@4.3.6
| +-- tildify@1.2.0
| | `-- os-homedir@1.0.2
| +-- v8flags@2.0.11
| | `-- user-home@1.1.1
| `-- vinyl-fs@0.3.14
|   +-- defaults@1.0.3
|   | `-- clone@1.0.2
|   +-- glob-stream@3.1.18
|   | +-- glob@4.5.3
|   | | `-- inflight@1.0.6
|   | +-- glob2base@0.0.12
|   | | `-- find-index@0.1.1
|   | +-- minimatch@2.0.10
|   | | `-- brace-expansion@1.1.6
|   | |   +-- balanced-match@0.4.2
|   | |   `-- concat-map@0.0.1
|   | +-- ordered-read-streams@0.1.0
|   | +-- through2@0.6.5
|   | | `-- readable-stream@1.0.34
|   | `-- unique-stream@1.0.0
|   +-- glob-watcher@0.0.6
|   | `-- gaze@0.5.2
|   |   `-- globule@0.1.0
|   |     +-- glob@3.1.21
|   |     | +-- graceful-fs@1.2.3
|   |     | `-- inherits@1.0.2
|   |     +-- lodash@1.0.2
|   |     `-- minimatch@0.2.14
|   |       +-- lru-cache@2.7.3
|   |       `-- sigmund@1.0.1
|   +-- graceful-fs@3.0.11
|   | `-- natives@1.1.0
|   +-- mkdirp@0.5.1
|   | `-- minimist@0.0.8
|   +-- strip-bom@1.0.0
|   | +-- first-chunk-stream@1.0.0
|   | `-- is-utf8@0.2.1
|   +-- through2@0.6.5
|   | `-- readable-stream@1.0.34
|   `-- vinyl@0.4.6
|     `-- clone@0.2.0
+-- gulp-concat@2.6.0
| +-- concat-with-sourcemaps@1.0.4
| | `-- source-map@0.5.6
| `-- through2@0.6.5
|   +-- readable-stream@1.0.34
|   | +-- core-util-is@1.0.2
|   | +-- inherits@2.0.3
|   | +-- isarray@0.0.1
|   | `-- string_decoder@0.10.31
|   `-- xtend@4.0.1
+-- gulp-minify-css@0.3.13
| +-- bufferstreams@0.0.2
| | `-- readable-stream@1.1.14
| +-- clean-css@3.0.10
| | +-- commander@2.5.1
| | `-- source-map@0.1.43
| |   `-- amdefine@1.0.0
| +-- memory-cache@0.0.5
| +-- through2@0.6.5
| | `-- readable-stream@1.0.34
| `-- vinyl-sourcemaps-apply@0.1.4
|   `-- source-map@0.1.43
+-- gulp-rename@1.2.2
+-- gulp-util@2.2.20
| +-- chalk@0.5.1
| | +-- ansi-styles@1.1.0
| | +-- has-ansi@0.1.0
| | | `-- ansi-regex@0.2.1
| | +-- strip-ansi@0.3.0
| | `-- supports-color@0.2.0
| +-- dateformat@1.0.12
| | +-- get-stdin@4.0.1
| | `-- meow@3.7.0
| |   +-- camelcase-keys@2.1.0
| |   | `-- camelcase@2.1.1
| |   +-- decamelize@1.2.0
| |   +-- loud-rejection@1.6.0
| |   | +-- currently-unhandled@0.4.1
| |   | | `-- array-find-index@1.0.2
| |   | `-- signal-exit@3.0.1
| |   +-- map-obj@1.0.1
| |   +-- normalize-package-data@2.3.5
| |   | +-- hosted-git-info@2.1.5
| |   | +-- is-builtin-module@1.0.0
| |   | | `-- builtin-modules@1.1.1
| |   | `-- validate-npm-package-license@3.0.1
| |   |   +-- spdx-correct@1.0.2
| |   |   | `-- spdx-license-ids@1.2.2
| |   |   `-- spdx-expression-parse@1.0.4
| |   +-- object-assign@4.1.0
| |   +-- read-pkg-up@1.0.1
| |   | +-- find-up@1.1.2
| |   | | +-- path-exists@2.1.0
| |   | | `-- pinkie-promise@2.0.1
| |   | |   `-- pinkie@2.0.4
| |   | `-- read-pkg@1.1.0
| |   |   +-- load-json-file@1.1.0
| |   |   | +-- graceful-fs@4.1.9
| |   |   | +-- parse-json@2.2.0
| |   |   | | `-- error-ex@1.3.0
| |   |   | |   `-- is-arrayish@0.2.1
| |   |   | +-- pify@2.3.0
| |   |   | `-- strip-bom@2.0.0
| |   |   `-- path-type@1.1.0
| |   +-- redent@1.0.0
| |   | +-- indent-string@2.1.0
| |   | | `-- repeating@2.0.1
| |   | |   `-- is-finite@1.0.2
| |   | |     `-- number-is-nan@1.0.1
| |   | `-- strip-indent@1.0.1
| |   `-- trim-newlines@1.0.0
| +-- lodash._reinterpolate@2.4.1
| +-- lodash.template@2.4.1
| | +-- lodash._escapestringchar@2.4.1
| | +-- lodash.defaults@2.4.1
| | | `-- lodash._objecttypes@2.4.1
| | +-- lodash.escape@2.4.1
| | | +-- lodash._escapehtmlchar@2.4.1
| | | | `-- lodash._htmlescapes@2.4.1
| | | `-- lodash._reunescapedhtml@2.4.1
| | +-- lodash.keys@2.4.1
| | | +-- lodash._isnative@2.4.1
| | | +-- lodash._shimkeys@2.4.1
| | | `-- lodash.isobject@2.4.1
| | +-- lodash.templatesettings@2.4.1
| | `-- lodash.values@2.4.1
| +-- minimist@0.2.0
| +-- multipipe@0.1.2
| | `-- duplexer2@0.0.2
| +-- through2@0.5.1
| | +-- readable-stream@1.0.34
| | `-- xtend@3.0.0
| `-- vinyl@0.2.3
|   `-- clone-stats@0.0.1
`-- shelljs@0.3.0

npm WARN Authenticate.me@1.0.0 No repository field.
npm WARN Authenticate.me@1.0.0 No license field.
npm ERR! Windows_NT 10.0.10240
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! node v6.9.1
npm ERR! npm  v3.10.8
npm ERR! code ELIFECYCLE

npm ERR! node-sass@0.9.6 install: `node build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the node-sass@0.9.6 install script 'node build.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the node-sass package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node build.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs node-sass
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls node-sass
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     D:\Ionic\IonicUserBase\npm-debug.log

D:\Ionic\IonicUserBase>

更新:

我已经尝试了@mscdex 建议的方式,这里是新的log,在使用npm install 时仍然构建失败,现在我已经安装了另一个版本的nodejs(即node-v4.2.1- x64)

【问题讨论】:

实际错误应该出现在您从新日志发布的 console 输出之前,因此您也需要发布该输出。 @mscdex 嘿朋友抱歉回复晚了,请检查这个:pastebin.com/5z60fRTZ 现在还有一件事我卸载了上一个版本并安装了新版本的 node js(即 node-v4.2.1-x64 ) 您在尝试安装软件包时是否拥有管理员权限? 尝试安装单个模块而不是依赖项,这会显示诸如 npm install express 之类的一堆错误 是的,一一安装依赖,看看是哪个依赖导致错误或者是不是npm导致问题 【参考方案1】:

我克隆了project 并尝试了同样的方法。

通过将 PythonPath 添加到 Windows 环境并将 gulp-sass 更新到最新版本,我能够成功构建项目

第 1 步:

从here下载Python 2.7.12

并将环境变量PATH设置为/path/to/executable/python2.7(例如:C:\Python27\python.exe)

以管理员身份打开cmd并运行

npm install --g --production windows-build-tools 

我都做了。

第 2 步:

打开你的 package.json (D:\Ionic\IonicUserBase\package.json)

将gulp-sass 的版本从"gulp-sass": "^0.7.1" 更改为最新版本"gulp-sass": "^2.3.2"

现在试试npm install

它应该可以正常工作。

总结: 让我总结一下整个流程

管理员身份打开cmd

npm install -g cordova ionic
npm install --g --production windows-build-tools from cmd as administrator
git clone https://github.com/malikov/Authenticate.me-client-cordova-ionic.git
cd Authenticate.me-client-cordova-ionic 

在 package.json 中将 gulp-sass 的版本更改为最新版本。 "gulp-sass": "^2.3.2"

npm install
ionic platform add android
ionic run android

【讨论】:

【参考方案2】:

你试过运行npm rebuild node-sass吗?

如果这不起作用,那么您可能需要进入您的 package.json 并更新您的依赖项。当我遇到混乱的节点错误时,我通常会这样做:

删除您的node_modules 文件夹并备份您的package.json。然后从package.json 中删除所有依赖项,并使用npm install package_name --save 手动安装每个依赖项。这将安装每个软件包的最新版本 - 它可能会解决您的问题。我遇到过与 npm update 不一致的情况,这就是我推荐此手动流程的原因。

【讨论】:

【参考方案3】:

node-sass是一个节点插件,所以需要编译。但是,您至少没有安装 Python 才能编译插件。

在 Windows 上,您应该只需执行此操作(从提升的 PowerShell 会话或从以管理员身份运行的命令提示符)即可安装所需的一切:

npm install --global --production windows-build-tools

一旦成功完成,重新运行您原来的npm install

编辑:阅读您的npm install 日志后,您似乎依赖于旧版本的gulp-sass,因为正在安装一个真正旧版本的node-sass (node-sass v0.9.6 于 2014 年发布)。尝试安装和使用最新版本的 gulp-sass(撰写本文时为 v2.3.2),这应该会引入与现代版本的 node 兼容的更新的 node-sass

【讨论】:

请检查上面我已经尝试过你的方法,但是在使用 npm install 时仍然构建失败...... 嘿,我也尝试过这种方式,但我没有取得任何成功,即使遇到同样的问题,请在此处查看命令和新日志:pastebin.com/jixGgRRH 您遇到了同样的问题,因为您在同一目录 (D:\Ionic\IonicUserBase) 中运行相同的 npm install,该目录有一个 package.json 并引用了旧的 @ 987654332@ 仍然依赖。【参考方案4】:

我有一个类似的版本,我通过安装 python 2.7 解决了

npm install --python=python2.7

或将其设置为始终使用:

npm config set python python2.7

我还安装了 Visual stdio 2015 和 2012。

npm install --global --production windows-build-tools

【讨论】:

以上是关于npm install:无法在 Windows 10 中安装依赖项的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Windows 10 上 npm 安装 web3

npm install时报错 npm ERR!Windows_NT 6.1.7601

npm install 成功,但 npm run start 无法找到 rimraf 和 react-scripts,尽管它们已安装

npm install 时报错npm ERR! Windows_NT 6.1.7601

需要 node-gyp 的 npm install 在 Windows 上失败

npm install时报错 npm ERR!Windows_NT 6.1.7601