npm警告:未找到文件或目录,打开'C:\ Users \ Nuwanst \ package.json'。

180

我想要将socket.io安装到我的项目中,该项目位于3.chat文件夹中。但是当我运行以下命令时,它显示以下警告,并且没有在我的项目文件夹内创建node_modules目录。如何解决这个问题?

C:\Users\Nuwanst\Documents\NodeJS\3.chat>npm install socket.io
C:\Users\Nuwanst
`-- socket.io@2.0.3

npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\Nuwanst\package.json'
npm WARN Nuwanst No description
npm WARN Nuwanst No repository field.
npm WARN Nuwanst No README data
npm WARN Nuwanst No license field.

请确保您已正确解压缩该文件。 - csandreas1
1
对于那些试图运行 npm init 的人来说,npm i 不是它的简写! - nathanfranke
17个回答

175

如果您已经有了 package-lock.json 文件,只需将其删除并重试。


2
将所有应用程序从一个服务器同步到另一个服务器,并且 package-lock.json 存在于其中。从所有应用程序中删除它,拯救了我的一天。 - Rehmat
29
我没有 package-lock.json 文件。 - towry
3
在删除了package-lock.json文件后,这对我起作用了。现在我的问题是运行npm install后,是否会重新创建package-lock.json文件?@Aravin 因为我正在安装过程中,但我没有看到它创建package-lock.json文件。 - Dijiflex
2
感谢您,在安装后添加了它。 - Dijiflex
7
可以,这个解决方案对我有用,但你能否解释一下它是如何工作的? - Duc Nguyen
显示剩余6条评论

151

你是否创建了 package.json 文件?也许先再次运行这个命令。

C:\Users\Nuwanst\Documents\NodeJS\3.chat>npm init

它会在你的文件夹中创建一个 package.json 文件。

然后运行,

C:\Users\Nuwanst\Documents\NodeJS\3.chat>npm install socket.io --save

--save 确保你的模块被保存为依赖项在你的 package.json 文件中。

如果这个方法有效,请让我知道。


3
这对我有用。谢谢!请注意,当您运行“npm init”时,它会要求您输入许多字段,但默认值在括号中。只需按回车键并接受默认值即可。 - VoteCoffee
1
大多数情况下,这不是正确答案。请检查@Aravin的答案。 - Sisir
1
Aravin的答案也是错误的。有一个package-lock.json的原因。删除它并不能解决问题。例如,如果在CI管道中失败了怎么办? - Asotos
这对我也起作用了,但是我需要在每个新的项目克隆上都这样做吗?另外,旧的package.json有什么问题,为什么需要重新创建? - Komal Thamke

33

确保你在拥有 package.json 的正确目录下


3
容易...但救了我的一天... - EnGoPy
1
这对我来说就是这样。由于某种原因,我有两个项目目录,即C:\ project_1 \ project_1),我正在尝试在第一个上运行npm start,但它没有package.json文件。 - Erich Cervantez

10

您需要确保在app目录中存在package.json文件。运行此命令,其中package.json文件存在。

为了更好的解释,在c:\selfPractice中运行npm start,但是我的package.json文件位于c:\selfPractice\frontend。当我切换到c:\selfPractice时,它可以工作。


6

注意:如果您在CI流水线中遇到此问题,通常是因为npm运行npm ci而不是npm installnpm ci需要准确的package-lock.json

要解决此问题,请在修改package.json中的包(例如像我一样将包从devDependencies移到Dependencies)时,通过本地运行以下命令重新生成存储库中的package-lock.json,然后推送更改到上游:

rm -rf node_modules
npm install
git commit package-lock.json
git push

4

如果你的文件夹中已经有了package.json

那么,

复制package.json的路径

打开终端

输入:

cd 你的package.json路径

ENTER

然后输入:

npm install

这对我有效


4

最终,我找到了一个解决方案。如果你遇到以下问题:

**npm WARN tar ENOENT: no such file or directory,.......**

如果遇到这种情况,不是npm或其版本的问题,而是操作系统权限问题,解决此问题需要使用以下命令:

sudo chown -R $USER:$USER *

附加的

sudo chmod -R 777 *

然后运行:-
sudo npm i 

15
请不要在您的工作空间上运行 sudo chmod -R 777 * 命令。 - Ziv
1
这非常危险,有些人没有头绪,你正在建议给每个文件赋予所有权限。 - Janos Vinceller

2
删除 package.jsonpackage-lock.json 文件,然后输入 npm init,之后输入 npm install socket.io --save,最后输入 npm install。这样做对我有效。

2

我刚刚遇到了这个错误,但在stackoverflow上查找答案时,我在过程中找到了答案,因此我决定分享它。如果在你正在处理的React项目中出现此错误,并且当你运行npm start时,请确保更改目录为已安装React的目录,然后它就可以正常工作了。


2
如果您正在尝试在从其他地方同步的文件夹上运行“npm install”,请记得将以下内容添加到您的“rsync --exclude”中。此内容如下:npm install
yourpath/node_modules

否则,NPM 将尝试添加 node_modules ,而 rsync 将立即删除它,导致许多 npm WARN enoent ENOENT: no such file or directory, open 错误。请保留 HTML 标签。

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