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 错误

NPM + Browserify 错误:ParseError: 'import' 和 'export' 可能只出现在 'sourceType: module' 中