如何解决 npm 安装错误“npm ERR!代码 1”
How to solve npm install error “npm ERR! code 1”
我正在尝试安装 gulp,当我写 npm install
时遇到了这个问题:
npm ERR! code 1
npm ERR! path D:\www\wegrow\node_modules\node-sass
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c node scripts/build.js
npm ERR! Building: C:\Program Files (x86)\nodejs\node.exe D:\www\wegrow\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp verb cli [
npm ERR! gyp verb cli 'C:\Program Files (x86)\nodejs\node.exe',
npm ERR! gyp verb cli 'D:\www\wegrow\node_modules\node-gyp\bin\node-gyp.js',
npm ERR! gyp verb cli 'rebuild',
npm ERR! gyp verb cli '--verbose',
npm ERR! gyp verb cli '--libsass_ext=',
npm ERR! gyp verb cli '--libsass_cflags=',
npm ERR! gyp verb cli '--libsass_ldflags=',
npm ERR! gyp verb cli '--libsass_library='
npm ERR! gyp verb cli ]
npm ERR! gyp info using node-gyp@3.8.0
npm ERR! gyp info using node@16.1.0 | win32 | ia32
npm ERR! gyp verb command rebuild []
npm ERR! gyp verb command clean []
npm ERR! gyp verb clean removing "build" directory
npm ERR! gyp verb command configure []
npm ERR! gyp verb check python checking for Python executable "python2" in the PATH
npm ERR! gyp verb `which` failed Error: not found: python2
npm ERR! gyp verb `which` failed at getNotFoundError (D:\www\wegrow\node_modules\which\which.js:13:12)
npm ERR! gyp verb `which` failed at F (D:\www\wegrow\node_modules\which\which.js:68:19)
npm ERR! gyp verb `which` failed at E (D:\www\wegrow\node_modules\which\which.js:80:29)
npm ERR! gyp verb `which` failed at D:\www\wegrow\node_modules\which\which.js:89:16
npm ERR! gyp verb `which` failed at D:\www\wegrow\node_modules\isexe\index.js:42:5
npm ERR! gyp verb `which` failed at D:\www\wegrow\node_modules\isexe\windows.js:36:5
npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:194:21)
npm ERR! gyp verb `which` failed python2 Error: not found: python2
npm ERR! gyp verb `which` failed at getNotFoundError (D:\www\wegrow\node_modules\which\which.js:13:12)
npm ERR! gyp verb `which` failed at F (D:\www\wegrow\node_modules\which\which.js:68:19)
npm ERR! gyp verb `which` failed at E (D:\www\wegrow\node_modules\which\which.js:80:29)
npm ERR! gyp verb `which` failed at D:\www\wegrow\node_modules\which\which.js:89:16
npm ERR! gyp verb `which` failed at D:\www\wegrow\node_modules\isexe\index.js:42:5
npm ERR! gyp verb `which` failed at D:\www\wegrow\node_modules\isexe\windows.js:36:5
npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:194:21) {
npm ERR! gyp verb `which` failed code: 'ENOENT'
npm ERR! gyp verb `which` failed }
npm ERR! gyp verb check python checking for Python executable "python" in the PATH
npm ERR! gyp verb `which` succeeded python C:\Python39\python.EXE
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: Command failed: C:\Python39\python.EXE -c import sys; print "%s.%s.%s" % sys.version_info[:3];
npm ERR! gyp ERR! stack File "<string>", line 1
npm ERR! gyp ERR! stack import sys; print "%s.%s.%s" % sys.version_info[:3];
npm ERR! gyp ERR! stack ^
npm ERR! gyp ERR! stack SyntaxError: invalid syntax
npm ERR! gyp ERR! stack
npm ERR! gyp ERR! stack at ChildProcess.exithandler (node:child_process:326:12)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:365:28)
npm ERR! gyp ERR! stack at maybeClose (node:internal/child_process:1067:16)
npm ERR! gyp ERR! stack at Socket.<anonymous> (node:internal/child_process:453:11)
npm ERR! gyp ERR! stack at Socket.emit (node:events:365:28)
npm ERR! gyp ERR! stack at Pipe.<anonymous> (node:net:661:12)
npm ERR! gyp ERR! System Windows_NT 10.0.19042
npm ERR! gyp ERR! command "C:\Program Files (x86)\nodejs\node.exe" "D:\www\wegrow\node_modules\node-gyp\bin\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
npm ERR! gyp ERR! cwd D:\www\wegrow\node_modules\node-sass
npm ERR! gyp ERR! node -v v16.1.0
npm ERR! gyp ERR! node-gyp -v v3.8.0
npm ERR! gyp ERR! not ok
npm ERR! Build failed with error code: 1
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\wbalu\AppData\Local\npm-cache\_logs21-05-05T10_38_29_779Z-debug.log
我已经格式化了我的电脑。之前一切正常。现在,当我尝试安装它时,弹出窗口就是这样。我试过重新安装 node.js 但没有用。我不知道该怎么办。
试试看
npm install --python=python2.7
。
它应该工作。
编辑:或者,--python=path to your python executable
如果您的 Node 版本非常新,请尝试降级。稳定版 14.16.1 有效。
尝试
npm cache clean --force
删除node_modules并打包-lock.json
npm i
我也运行关注这个问题。查看我的设置后,我没有发现任何问题,删除了缓存并删除了包锁,但仍然没有成功。
这是一个较旧的网站,我尝试使用 update/etc 无济于事。
所以我在我的 package.json 文件中取出了整个依赖项部分,然后开始按我的方式一次安装一个。
有效!
显然几乎所有的版本都是一个重大更新,后面的更新太多了。
降级 Node 是一种选择,但我不喜欢仅仅因为一个包抛出错误而降级 Node 的想法。在我看来,找出导致错误的包然后修复它会是一个更好的方法。
快速解决方案
在 npm ERR! code 1
之后的行中,您应该可以看到 npm ERR! path...
。在我的例子中,路径表明 node-sass
npm 包有问题:
npm ERR! code 1
npm ERR! path /home/gignu/GitHub/Movie-Subtitles/node_modules/node-sass
npm ERR! command failed
现在从 package.json
中删除这个 npm 包并查看安装是否有效。如果有效,您就找到了罪魁祸首!就我而言,修复它所要做的就是将 node-sass
升级到最新版本。
// package.json with the outdated dependency
"node-sass": "^4.14.1",
// package.json with the updated dependency
"node-sass": "^7.0.1",
缓慢的解决方案
如果之前的解决方案对您不起作用,我会采用@Andrew Fair 的解决方案:
I took out the entire dependencies portion in my package.json file and just started working my way through installing one at a time.
要做到这一点,只需复制 package.json
中的整个 dependencies
部分和 devDependencies
部分,并将其粘贴到文本编辑器中作为备份。然后删除所有依赖项并尝试一次添加一个依赖项。如果您有很多依赖项,您也可以一次添加多个依赖项。每次 运行 npm i
并查看它是否抛出错误。一旦您发现导致错误的依赖项,请尝试将该依赖项升级到较新的版本,然后 运行 npm i --force
!
如果这不起作用,请尝试用另一个替换坏的 npm 包或查看他们的 GitHub 存储库以获取解决方案。
升级后我遇到了同样的问题angular,所以我尝试了多个步骤来解决它。下面提到了一些步骤。
- 尝试删除 package-lock.json 文件和 node_module 文件夹,然后 运行
npm cache clean --force
然后再次尝试 npm i 安装软件包,如果仍然无法正常工作,请检查步骤 2
- 检查 nodeJs 版本和 npm 版本是否兼容。在我的例子中,我使用的是 node v14.15.0 和 npm v8.1.6,所以我用下面的命令卸载了 npm 并再次安装了 node js 以使 node 和 npm 版本同步。
npm uninstall npm -g
这对我有用。
试试 cnpm,对我有用
npm install -g cnpm --registry=https://registry.npmmirror.com
cnpm install
当我尝试在旧项目中使用 运行 npm install
命令时,我遇到了同样的问题,我通过更新 package.json[= 中的依赖项解决了这个问题39=] 按照以下步骤升级到最新版本:
删除node_modules和package-lock.json
全局安装npm-check-updates,将所有包更新到新的主要版本
运行 npm install -g npm-check-updates
运行 ncu -u
更新 package.json 中的依赖到最新版本
注意:您可以使用 npm update
,但 npm update 不会更新到最新版本
运行 npm install
也许试试 yarn install
。对我有用。
我正在尝试安装 gulp,当我写 npm install
时遇到了这个问题:
npm ERR! code 1
npm ERR! path D:\www\wegrow\node_modules\node-sass
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c node scripts/build.js
npm ERR! Building: C:\Program Files (x86)\nodejs\node.exe D:\www\wegrow\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp verb cli [
npm ERR! gyp verb cli 'C:\Program Files (x86)\nodejs\node.exe',
npm ERR! gyp verb cli 'D:\www\wegrow\node_modules\node-gyp\bin\node-gyp.js',
npm ERR! gyp verb cli 'rebuild',
npm ERR! gyp verb cli '--verbose',
npm ERR! gyp verb cli '--libsass_ext=',
npm ERR! gyp verb cli '--libsass_cflags=',
npm ERR! gyp verb cli '--libsass_ldflags=',
npm ERR! gyp verb cli '--libsass_library='
npm ERR! gyp verb cli ]
npm ERR! gyp info using node-gyp@3.8.0
npm ERR! gyp info using node@16.1.0 | win32 | ia32
npm ERR! gyp verb command rebuild []
npm ERR! gyp verb command clean []
npm ERR! gyp verb clean removing "build" directory
npm ERR! gyp verb command configure []
npm ERR! gyp verb check python checking for Python executable "python2" in the PATH
npm ERR! gyp verb `which` failed Error: not found: python2
npm ERR! gyp verb `which` failed at getNotFoundError (D:\www\wegrow\node_modules\which\which.js:13:12)
npm ERR! gyp verb `which` failed at F (D:\www\wegrow\node_modules\which\which.js:68:19)
npm ERR! gyp verb `which` failed at E (D:\www\wegrow\node_modules\which\which.js:80:29)
npm ERR! gyp verb `which` failed at D:\www\wegrow\node_modules\which\which.js:89:16
npm ERR! gyp verb `which` failed at D:\www\wegrow\node_modules\isexe\index.js:42:5
npm ERR! gyp verb `which` failed at D:\www\wegrow\node_modules\isexe\windows.js:36:5
npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:194:21)
npm ERR! gyp verb `which` failed python2 Error: not found: python2
npm ERR! gyp verb `which` failed at getNotFoundError (D:\www\wegrow\node_modules\which\which.js:13:12)
npm ERR! gyp verb `which` failed at F (D:\www\wegrow\node_modules\which\which.js:68:19)
npm ERR! gyp verb `which` failed at E (D:\www\wegrow\node_modules\which\which.js:80:29)
npm ERR! gyp verb `which` failed at D:\www\wegrow\node_modules\which\which.js:89:16
npm ERR! gyp verb `which` failed at D:\www\wegrow\node_modules\isexe\index.js:42:5
npm ERR! gyp verb `which` failed at D:\www\wegrow\node_modules\isexe\windows.js:36:5
npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:194:21) {
npm ERR! gyp verb `which` failed code: 'ENOENT'
npm ERR! gyp verb `which` failed }
npm ERR! gyp verb check python checking for Python executable "python" in the PATH
npm ERR! gyp verb `which` succeeded python C:\Python39\python.EXE
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: Command failed: C:\Python39\python.EXE -c import sys; print "%s.%s.%s" % sys.version_info[:3];
npm ERR! gyp ERR! stack File "<string>", line 1
npm ERR! gyp ERR! stack import sys; print "%s.%s.%s" % sys.version_info[:3];
npm ERR! gyp ERR! stack ^
npm ERR! gyp ERR! stack SyntaxError: invalid syntax
npm ERR! gyp ERR! stack
npm ERR! gyp ERR! stack at ChildProcess.exithandler (node:child_process:326:12)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:365:28)
npm ERR! gyp ERR! stack at maybeClose (node:internal/child_process:1067:16)
npm ERR! gyp ERR! stack at Socket.<anonymous> (node:internal/child_process:453:11)
npm ERR! gyp ERR! stack at Socket.emit (node:events:365:28)
npm ERR! gyp ERR! stack at Pipe.<anonymous> (node:net:661:12)
npm ERR! gyp ERR! System Windows_NT 10.0.19042
npm ERR! gyp ERR! command "C:\Program Files (x86)\nodejs\node.exe" "D:\www\wegrow\node_modules\node-gyp\bin\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
npm ERR! gyp ERR! cwd D:\www\wegrow\node_modules\node-sass
npm ERR! gyp ERR! node -v v16.1.0
npm ERR! gyp ERR! node-gyp -v v3.8.0
npm ERR! gyp ERR! not ok
npm ERR! Build failed with error code: 1
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\wbalu\AppData\Local\npm-cache\_logs21-05-05T10_38_29_779Z-debug.log
我已经格式化了我的电脑。之前一切正常。现在,当我尝试安装它时,弹出窗口就是这样。我试过重新安装 node.js 但没有用。我不知道该怎么办。
试试看
npm install --python=python2.7
。
它应该工作。
编辑:或者,--python=path to your python executable
如果您的 Node 版本非常新,请尝试降级。稳定版 14.16.1 有效。
尝试
npm cache clean --force
删除node_modules并打包-lock.json
npm i
我也运行关注这个问题。查看我的设置后,我没有发现任何问题,删除了缓存并删除了包锁,但仍然没有成功。
这是一个较旧的网站,我尝试使用 update/etc 无济于事。
所以我在我的 package.json 文件中取出了整个依赖项部分,然后开始按我的方式一次安装一个。
有效!
显然几乎所有的版本都是一个重大更新,后面的更新太多了。
降级 Node 是一种选择,但我不喜欢仅仅因为一个包抛出错误而降级 Node 的想法。在我看来,找出导致错误的包然后修复它会是一个更好的方法。
快速解决方案
在 npm ERR! code 1
之后的行中,您应该可以看到 npm ERR! path...
。在我的例子中,路径表明 node-sass
npm 包有问题:
npm ERR! code 1
npm ERR! path /home/gignu/GitHub/Movie-Subtitles/node_modules/node-sass
npm ERR! command failed
现在从 package.json
中删除这个 npm 包并查看安装是否有效。如果有效,您就找到了罪魁祸首!就我而言,修复它所要做的就是将 node-sass
升级到最新版本。
// package.json with the outdated dependency
"node-sass": "^4.14.1",
// package.json with the updated dependency
"node-sass": "^7.0.1",
缓慢的解决方案
如果之前的解决方案对您不起作用,我会采用@Andrew Fair 的解决方案:
I took out the entire dependencies portion in my package.json file and just started working my way through installing one at a time.
要做到这一点,只需复制 package.json
中的整个 dependencies
部分和 devDependencies
部分,并将其粘贴到文本编辑器中作为备份。然后删除所有依赖项并尝试一次添加一个依赖项。如果您有很多依赖项,您也可以一次添加多个依赖项。每次 运行 npm i
并查看它是否抛出错误。一旦您发现导致错误的依赖项,请尝试将该依赖项升级到较新的版本,然后 运行 npm i --force
!
如果这不起作用,请尝试用另一个替换坏的 npm 包或查看他们的 GitHub 存储库以获取解决方案。
升级后我遇到了同样的问题angular,所以我尝试了多个步骤来解决它。下面提到了一些步骤。
- 尝试删除 package-lock.json 文件和 node_module 文件夹,然后 运行
npm cache clean --force
然后再次尝试 npm i 安装软件包,如果仍然无法正常工作,请检查步骤 2
- 检查 nodeJs 版本和 npm 版本是否兼容。在我的例子中,我使用的是 node v14.15.0 和 npm v8.1.6,所以我用下面的命令卸载了 npm 并再次安装了 node js 以使 node 和 npm 版本同步。
npm uninstall npm -g
这对我有用。
试试 cnpm,对我有用
npm install -g cnpm --registry=https://registry.npmmirror.com
cnpm install
当我尝试在旧项目中使用 运行 npm install
命令时,我遇到了同样的问题,我通过更新 package.json[= 中的依赖项解决了这个问题39=] 按照以下步骤升级到最新版本:
删除node_modules和package-lock.json
全局安装npm-check-updates,将所有包更新到新的主要版本
运行
npm install -g npm-check-updates
运行
ncu -u
更新 package.json 中的依赖到最新版本注意:您可以使用
npm update
,但 npm update 不会更新到最新版本运行
npm install
也许试试 yarn install
。对我有用。