npm安装出现错误“找不到package.json文件”

87

npm install / npm install -g 命令在Windows 7中无法正常工作。

已正确安装Node.js,Node.js版本为v0.10.28。

无法读取依赖项
ENOENT, 打开'"filepath"\package.json'
这很可能不是npm本身的问题。
npm在您当前的目录中找不到package.json文件。

照片


http://i.stack.imgur.com/wGoYc.jpg - Subhajit Panja
1
“Not working” 不是很有用。从你的屏幕截图来看,似乎在 package.json 中遇到了问题。你能发布一下那个文件的内容吗?日志上写了什么?(实际上,“ENOENT”表示npm无法读取指定的文件。你的包文件在哪里?你有这样的文件吗?) - Ben
是的,这会生成npm-debug.log文件。 链接如下: http://jsfiddle.net/goldfingerxyz/Whz35/ - Subhajit Panja
您可能还需要确保以管理员身份运行命令提示符。 - KSwift87
9个回答

91

你没有说明要安装哪个模块 - 因此npm会查找描述你的依赖项的package.json文件,很明显该文件缺失。

因此,您必须明确告诉npm要安装哪个模块,例如:

npm install express

或者
npm install -g express-generator

或者你需要添加一个 package.json 文件并在此处注册你的模块。获取这样一个文件最简单的方法是让 npm 运行以下命令来创建此文件:

npm init

然后添加你需要的内容。请注意,这仅适用于本地安装的模块,而不是全局模块。

一个简单的示例可能如下所示:

{
  "name": "myapp",
  "version": "0.0.1",
  "dependencies": {
    "express": "4.0.0"
  }
}

或类似的东西。有关package.json文件的更多信息,请参阅其官方文档这个交互式指南


非常感谢您。我被卡在这里已经两天了。 - fiddle

22

node 已经预装了 npm,所以您应该有一个版本的 npm。然而,npm 的更新频率比 node 更高,因此您需要确保它是最新版本。

sudo npm install npm -g

测试:运行npm -v命令。版本应该高于2.1.8。

npm install

就是这样!

https://www.youtube.com/watch?v=wREima9e6vk


7
使用以下命令创建package.json文件:
npm init 
npm init --yes or -y flag

这种方法将根据所在目录提取的信息生成一个默认的 package.json 文件。 使用 package.json

6

我不确定你在这里想做什么:

npm install 在你的主目录中单独使用不会有太多作用——它不是node app的根目录,因此没有要安装的内容,因为没有package.json。

有两个可能的解决方案:

1) cd 到一个node app并在那里运行 npm install.

2) 如果您想将某些东西安装为shell中使用的命令(您没有一个node应用程序),npm install -g packagename-g 标志告诉它在全局命名空间中安装。


5

>> 对于使用Package Manager Console的Visual Studio用户 <<

如果您是在Visual Studio中使用Package Manager Console,并希望执行:

npm install,但出现以下问题:

ENOENT:找不到文件或目录,打开'C:\ Users ... \ YourProject \ package.json'

请确保您正在正确的目录中执行命令

默认情况下,打开Package Manager Console时,VS使用解决方案文件夹

执行dir,然后您可以看到当前所在的文件夹。很可能在解决方案文件夹中,这就是为什么会出现此错误的原因。 现在您需要cd到您的项目文件夹中。

cd YourWebProject

现在npm install应该可以工作了,否则您可能有其他问题。


3
在我的情况下,我试图在D驱动器中创建工作区,而全局包(node_modules)和package.json文件在C驱动器中。只需执行:
npm install npm@latest -g

显然需要管理员权限。

之后重新启动您的cmd/终端,您就可以继续了。


1

请查看此链接,了解如何在本地应用程序中安装express.js的步骤。

但是,如果您出于某种原因要全局安装express,请确保您所在的目录是已安装Node的目录。 在我的Windows 10上,package.json位于

C:\Program Files\nodejs\node_modules\npm

以管理员身份打开命令提示符,并将目录更改为包含 package.json 的位置。

然后执行安装命令。


0
在我的情况下,package.json 文件中有错误:
npm ERR!package.json 必须是实际的 JSON 格式,而不仅仅是 JavaScript。

0

我遇到了与下面相同的问题。

npm ERR!errno -4058 npm ERR!syscall open npm ERR!enoent ENOENT:没有 这个文件或目录,打开 'D:\ SVenu \ FullStackDevelopment \ Angular \ Angular2_Splitter_CodeSkeleton \ CodeSke leton \ run \ package.json' npm ERR!enoent 这与npm无关 能够找到文件。npm ERR!enoent

我的问题是我运行了npm build run命令,而不是运行npm run build

只是分享一下,帮助一些像我这样犯小错误的人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接