“无法读取依赖项”错误与npm

时间:2013-08-23 11:38:46

标签: javascript json node.js npm

我想启动一个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 ]

17 个答案:

答案 0 :(得分:57)

我有"Invalid Name"

我从"name": "Some Name",...切换到"name": "Some-Name",...

猜猜name需要是一个笨拙的字符串。

答案 1 :(得分:29)

尝试添加:

"private": true,

它对我有用。

编辑(对于问及原因的人):

Oficial documentation声明如下:


如果你在package.json中设置"private": true,那么npm将拒绝发布它。 这是一种防止意外发布私有存储库的方法。如果您希望确保给定的包只发布到特定的注册表(例如,内部注册表),那么使用下面描述的publishConfig哈希覆盖发布时的registry配置参数-time。


您收到的错误消息可能与某种方式违反此“规则”有关(我的)。

  • 要么将未发布的包标记(如您自己的应用程序)标记为 "private": false
  • 或者你忽略了包含任何价值。

答案 2 :(得分:26)

最近,我开始收到错误:

npm ERR! install Couldn't read dependencies
npm ERR! Error: Invalid version: "1.0"

因此,您可能需要使用3个数字指定包裹的version,例如如果您收到类似错误,请1.0.0代替1.0

答案 3 :(得分:13)

这很简单,你只是不在正确的目录中。

转到C:\Program Files\nodejs\node_modules\npm,您应该能够正确运行此命令。

答案 4 :(得分:11)

尝试更新npm,它适用于我

[sudo] npm install -g npm

答案 5 :(得分:4)

我也得到了同样的例外,但之前在另一台机器上运行正常。无论如何,上面的解决方案并没有为我工作。我做了什么来解决它?

  1. 将依赖项列表复制到剪贴板中。
  2. 输入&#34; npm init&#34;创建新的新的package.json
  3. 再次将依赖项粘贴回package.json
  4. run&#34; npm install&#34;又来了!
  5. 完成:)希望它有所帮助。

答案 6 :(得分:2)

对我来说这是版本。是的,你放在根的行,如:

{
    "name": "your-project",
    "version": "0.1"
    ...
}

是的,npm不喜欢这样的版本,它更喜欢“0.0.1”之类的内容。

不要问我为什么,我会告诉你这完全是愚蠢的(或“如何轻松地浪费时间”)

答案 7 :(得分:2)

我的错误是我将文件命名为packages.json而不是package.json

答案 8 :(得分:1)

当我在&#34; name&#34;中有空格时,我收到了这个错误。在packagae.json文件中。

&#34; NPM项目&#34;而不是&#34; NPMProject&#34;

答案 9 :(得分:1)

我发现我不在正确的文件夹中。在运行此命令之前,我需要转到我刚刚克隆的文件夹。

答案 10 :(得分:0)

这看起来不像你的问题,但是为了别人,对我来说这是由于package.json中的版本号无效(必须将2.4更改为2.4.0)。

答案 11 :(得分:0)


不读取json的问题与文件的权限问题有关。

使用此命令可以解决问题:

sudo chown -R $USER:$GROUP ~/.npm

答案 12 :(得分:0)

1)在某些情况下,Nodejs安装在C:\ ProgramFiles中。如果您没有管理员权限,请尝试在C:驱动器或其他目录中安装。

2)确保您没有安装在公司的代理设置之后。这有时会影响安装。

3)最后,确保从此目录运行npm命令: 路径\的NodeJS \ node_modules \ NPM 其中Path是您自己的目录。

答案 13 :(得分:0)

我解决了这个问题,只是将我的项目从E:移到C:。我认为这是因为nodejs和npm安装在我的C:中,项目在我的E:

答案 14 :(得分:0)

在我将git存储库克隆到目录,重命名目录,然后尝试运行npm install后,我遇到了这个问题。我不确定问题是什么,但有些事情被搞砸了。删除所有内容,重新克隆(这次使用正确的目录名称),然后运行npm install解决了我的问题。

答案 15 :(得分:0)

验证您正在使用的用户帐户。如果任何系统用户没有安装包的权限,则npm specialy也会显示此消息。

答案 16 :(得分:-2)

我在线跟踪文档并认为此错误意味着NPM中的依赖项存在问题。然而,经过第三次看。我意识到这是一个错字。我没有在package.json中的第一个依赖项之后添加逗号,教程要求我编辑它。