在全新安装Node和Git后尝试运行npm install
时收到以下错误
任何人都知道可能导致它的原因,以及如何解决这个问题?
package.json
(已撤消公司详情)
{
"name": "xxx",
"version": "1.0.0",
"description": "xxx",
"engines": {
"node": "5.0.0",
"npm": "3.3.9"
},
"repository": "xxx",
"private": true,
"license": "UNLICENSED",
"dependencies": {
"dijit": "https://github.com/dojo/dijit.git#1.10.4",
"dojo": "1.10.4",
"fg-dialog": "0.1.5",
"politespace": "0.1.4",
"shoestring": "1.0.3"
},
"devDependencies": {
"body-parser": "^1.14.1",
"chalk": "^1.1.1",
"compression": "^1.6.0",
"del": "^2.0.2",
"dojo-util": "https://github.com/dojo/util.git#1.10.4",
"express": "^4.13.3",
"glob": "^5.0.15",
"gulp": "^3.9.0",
"gulp-concat": "^2.6.0",
"gulp-git": "^1.6.0",
"gulp-html-minifier": "^0.1.6",
"gulp-jsbeautifier": "^1.0.1",
"gulp-jshint": "^1.11.2",
"gulp-jshint-xml-file-reporter": "^0.5.1",
"gulp-jsonminify": "^1.0.0",
"gulp-replace": "^0.5.4",
"gulp-task-listing": "^1.0.1",
"gulp-uglify": "^1.4.1",
"gulp-util": "^3.0.6",
"gulp-zip": "^3.0.2",
"intern": "https://github.com/theintern/intern.git",
"jshint-stylish": "^2.0.1",
"merge-stream": "^1.0.0",
"minimist": "^1.2.0",
"open": "^0.0.5",
"q": "^1.4.1",
"request": "^2.65.0",
"require-dir": "^0.3.0",
"run-sequence": "^1.1.2",
"selenium-standalone": "^4.6.3"
},
"scripts": {
"postinstall": "gulp install"
}
}
答案 0 :(得分:14)
建议的第一步是使用最新的npm:
npm install -g npm
(您可能需要sudo
)。你使用的是npm 2.x,最新的是3.5.x.
答案 1 :(得分:3)
首先,我删除了位于npm
的{{1}}和npm-cache
目录。
然后,我执行了c:\myUser\AppData\Roaming
。这解决了我的问题。
答案 2 :(得分:2)
错误指向修订版,特别是使用1.10.4。检查dijit.git和util.git的BitBucket存储库是否设置了标记。有关Atlassian版本控制/标记的更多信息:https://confluence.atlassian.com/bitbucket/use-repo-tags-321860179.html。
如果您使用带有保存密码的SSH,则需要使用以下格式通过SSH连接对您的个人存储库的引用。
git+ssh://git@bitbucket.org/{user}/{repository}.git
答案 3 :(得分:2)
我有相同的npm错误代码128,但它也引用了npm-cache中的debug.log文件,揭示了真正的问题。
package.json中的两个依赖项直接指向我无法访问的私有存储库。
一旦我修复了(details here),我就能成功运行npm install。 注意:不需要重新安装或更新npm!
答案 4 :(得分:2)
在我的情况下,我刚刚升级了npm,而package-lock.json正试图从一个不可用的git commit版本安装一个项目的包。
删除并让npm重新创建文件package-lock.json解决了这个问题。
rm package-lock.json
注意:看起来package-lock.json维护有关node_modules树的更多详细信息,因此在复杂/特定于版本的项目中,隔离导致特定行的特定行可能很重要。问题,而不仅仅是删除package-lock.json文件。
答案 5 :(得分:1)
你必须在windows中使用cmd作为管理员,或在linux中添加sudo
答案 6 :(得分:0)
删除 node_modules 文件夹并删除 package-lock.json 文件。然后运行以下命令,
npm cache clean --force
npm install
答案 7 :(得分:0)
我在Windows 10上也遇到了同样的错误,并且通过使用以下URL生成,再次在GitHub中添加了ssh密钥来修复了该错误:https://help.github.com/enterprise/2.13/user/articles/connecting-to-github-with-ssh/
要检查现有密钥,请使用以下命令:
ls -al ~/.ssh
以查看是否存在现有的SSH密钥之后,您必须确保ssh-agent正在运行 您可以使用eval $(ssh-agent -s)命令运行ssh-agent
此后,您必须使用以下命令添加此现有密钥:ssh-add ~/.ssh/id_rsa
现在添加文件时,您可以使用命令clip < ~/.ssh/id_rsa.pub
转到GitHub网站,然后单击右上角的设置,然后将此ssh密钥添加到gitHub。
重新启动命令提示符,错误将得到解决。
希望这会对某人有所帮助。