npm 出现“无法读取依赖项”错误
Posted
技术标签:
【中文标题】npm 出现“无法读取依赖项”错误【英文标题】:"Couldn't read dependencies" error with npm 【发布时间】:2013-08-26 10:51:11 【问题描述】:我想启动一个 Node 应用程序并创建了一个带有教程的 package.json 文件。这是json文件:
"name": "Dashboard",
"version": "0.0.0",
"description": "Client-A Dashboard",
"dependencies":
"socket.io": "latest",
"express": "latest",
"jade": "latest"
,
"author": "tD"
我在尝试运行之前验证了 JSON 文件,但在运行 npm install
命令时仍然收到错误消息:
npm ERR! install Couldn't read dependencies
npm ERR! Error: ENOENT, open 'C:\projects\Client-A\Live\package.json'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\\Program Files (x86)\\nodejs\\\\node.exe" "C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! cwd C:\projects\Client-A\Live\
npm ERR! node -v v0.8.22
npm ERR! npm -v 1.2.14
npm ERR! path C:\projects\Client-A\Live\package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! C:\projects\Client-A\Live\npm-debug.log
npm ERR! not ok code 0
这是 npm-degub.log 文件
0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files (x86)\\nodejs\\\\node.exe',
1 verbose cli 'C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli 'install' ]
2 info using npm@1.2.14
3 info using node@v0.8.22
4 verbose node symlink C:\Program Files (x86)\nodejs\\node.exe
5 verbose read json C:\projects\Client-A\Live\package.json
6 error install Couldn't read dependencies
7 error Error: ENOENT, open 'C:\projects\Client-A\Live\package.json'
8 error If you need help, you may report this log at:
8 error <http://github.com/isaacs/npm/issues>
8 error or email it to:
8 error <npm-@googlegroups.com>
9 error System Windows_NT 6.1.7601
10 error command "C:\\Program Files (x86)\\nodejs\\\\node.exe" "C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
11 error cwd C:\projects\Client-A\Live\scoreboard
12 error node -v v0.8.22
13 error npm -v 1.2.14
14 error path C:\projects\Client-A\Live\package.json
15 error code ENOENT
16 error errno 34
17 verbose exit [ 34, true ]
【问题讨论】:
你能确认你是从 package.json 文件所在的同一目录运行npm install
吗?
是的,我在同一个目录中
以管理员身份运行打开CMD并尝试安装。
当我尝试不使用“以管理员身份运行”时收到权限错误。我使用管理员权限收到上述错误。
【参考方案1】:
尝试添加这个:
"private": true,
它对我有用。
编辑(对于问为什么的人):
Oficial documentation 声明如下:
如果你在你的 package.json 中设置了"private": true
,那么 npm 将拒绝发布它。
这是一种防止意外发布私有存储库的方法。如果您想确保给定的包只发布到特定的注册表(例如,内部注册表),请使用下面描述的 publishConfig
哈希在发布时覆盖 registry
配置参数。
您收到的错误消息可能与以某种方式违反此“规则”有关(我的是)。
要么您将未发布的包(如您自己的应用程序)标记为"private": false
。
或者您根本没有包含任何值。
【讨论】:
很高兴,我希望它能帮助更多的人:) 为什么会修复它?我遇到了类似的问题,但这无法解决。这里有更深的东西吗? (不过,谢谢你的回答!-只是想找出我的构建发生了什么:)) 啊,没关系,运行它时意识到我不在正确的目录中。谢谢! 也为我工作。但为什么呢? "private": true, :我应该在哪里添加这个?【参考方案2】:我有一个"Invalid Name"
我从"name": "Some Name",...
切换到"name": "Some-Name",...
猜name
需要是一个 sluggy 字符串。
【讨论】:
这是否记录在任何地方? 似乎并非如此。我也从未报告过:/ 谢谢伙计。那是我的问题。该死的蛞蝓.. :) 这也是给我的。【参考方案3】:很简单,你只是不在正确的目录中。
转到C:\Program Files\nodejs\node_modules\npm
,您应该能够正确运行此命令。
【讨论】:
这是可能的原因之一,但绝对不是唯一的原因。 对我来说这就是问题所在。【参考方案4】:最近开始报错:
npm ERR! install Couldn't read dependencies
npm ERR! Error: Invalid version: "1.0"
因此,您可能需要使用 3 个数字指定包裹的 version
,例如1.0.0
而不是 1.0
如果您遇到类似的错误。
【讨论】:
【参考方案5】:不读取 json 的问题与文件的权限问题有关。
使用这个命令就可以了:
sudo chown -R $USER:$GROUP ~/.npm
【讨论】:
【参考方案6】:对我来说,这是版本。是的,你放在根的那一行,比如:
"name": "your-project",
"version": "0.1"
...
是的,npm 不喜欢这样的版本,它更喜欢“0.0.1
”这样的版本。
不要问我为什么,我会告诉你这完全是愚蠢的(或者“如何轻松地浪费时间”)
【讨论】:
【参考方案7】:尝试更新 npm,它对我有用
[sudo] npm install -g npm
【讨论】:
这是做什么的?这对我有用,但我不能单独使用npm install
。【参考方案8】:
我发现我不在正确的文件夹中。在运行此命令之前,我需要转到我刚刚克隆的文件夹。
【讨论】:
大声笑,我只是做了同样的事情,看到你的回答让我动了脑筋。谢谢你。 :) 很高兴我的错误没有白费 :) 很高兴我能帮上忙【参考方案9】:当我在 packagae.json 文件中的“名称”中有空格时出现此错误。
“NPM 项目”而不是“NPMProject”
【讨论】:
【参考方案10】:我的错误是我将文件命名为packages.json
而不是package.json
【讨论】:
【参考方案11】:这看起来不像你的问题,但为了其他人,对我来说这是由 package.json 中的无效版本号引起的(必须将 2.4 更改为 2.4.0)。
【讨论】:
【参考方案12】:我正在关注在线文档,并认为此错误意味着 NPM 中的依赖项存在问题。然而,在第三次看之后。我意识到这是一个错字。我没有在教程要求我编辑的 package.json 中的第一个依赖项之后添加逗号。
【讨论】:
【参考方案13】:我也遇到了同样的异常,但它之前在另一台机器上运行良好。无论如何,上述解决方案对我不起作用。我做了什么来解决它?
-
将依赖项列表复制到剪贴板。
输入“npm init”以创建全新的 package.json
再次将依赖项粘贴回 package.json
再次运行“npm install”!
完成:) 希望对您有所帮助。
【讨论】:
是的,奇怪,手动创建node_modules文件夹和package.json文件后,它工作了 是的,我正在努力运行它,然后搜索但无法使其工作。最后上面的方法对我有用。很高兴有帮助:)【参考方案14】:1) Nodejs 在某些情况下会安装在 C:\ProgramFiles 中。如果您没有管理员权限,请尝试安装在 C: 盘或其他目录中。
2) 确保您没有安装在公司的代理设置后面。这有时会影响安装。
3) 最后,确保从该目录运行 npm 命令: 路径\nodejs\node_modules\npm 其中 Path 是您自己的目录。
【讨论】:
【参考方案15】:我解决了这个问题,只是将我的项目从 E: 移动到 C:。我认为它的发生是因为 nodejs 和 npm 安装在我的 C: 中,而项目在我的 E: 中:
【讨论】:
【参考方案16】:我将一个 git 存储库克隆到一个目录,重命名该目录,然后尝试运行 npm install
后遇到了这个问题。我不确定问题是什么,但有些东西搞砸了。删除所有内容,重新克隆(这次使用正确的目录名称),然后运行 npm install
解决了我的问题。
【讨论】:
【参考方案17】:验证用户帐户,您正在处理。如果任何系统用户没有安装包的权限,npm specialy 也会显示此消息。
【讨论】:
以上是关于npm 出现“无法读取依赖项”错误的主要内容,如果未能解决你的问题,请参考以下文章
在 npm install 上出现错误,因为 npm ERR cb() 从未调用过
firebase deploy --only 函数上出现 NPM 错误的原因是啥
NG 构建在 Azure Pipelines 中失败,并出现 NPM 错误 134
npm 不起作用,总是出现这个错误 -> 错误:找不到模块'are-we-there-yet'
NPM + Browserify 错误:ParseError: 'import' 和 'export' 可能只出现在 'sourceType: module' 中