ENOENT错误:没有这样的文件或目录。

5
 C:\Users\shagy\Desktop\3RD YEAR 2ND SEMESTER\SPM\Newfolder\SPM-SMS>npm start 
npm ERR! path C:\Users\shagy\Desktop\3RD YEAR 2ND SEMESTER\SPM\New folder\SPM-SMS\package.json npm ERR! code ENOENT
npm ERR! errno -4058 
npm ERR! syscall open 
npm ERR! enoent ENOENT: no such file or directory, open 'C:\Users\shagy\Desktop\3RD YEAR 2ND SEMESTER\SPM\New folder\SPM-SMS\package.json' 
npm ERR! enoent This is related to npm not being able to find a file. 
npm ERR! enoent
npm ERR! A complete log of this run can be found in: npm ERR!   C:\Users\shagy\AppData\Roaming\npm-cache\_logs\2018-09-05T14_23_49_736Z-debug.log

如何解决这个问题?即使在执行npm install之后,仍然出现此错误。

猜测文件或目录不存在。 - scniro
这与npm无法找到文件有关。npm ERR!enoent告诉您找不到该文件。检查该路径下的文件是否实际存在于您的fs中,并检查您用于调用该文件的引用路径是否存在可能的拼写错误。 - iLuvLogix
这是一个空白/新项目吗?你有调用npm init吗?在初始化项目时,Node会为您创建一个package.json文件.. ;) - iLuvLogix
可能是重复的问题:在执行npm install时出现“No such file or directory open”错误 - Michael Freidgeim
3个回答

7

这与npm无法找到文件有关。错误信息npm ERR!enoent告诉您找不到该文件。

首先,请检查该路径下实际是否存在该文件,并检查调用该文件的引用路径是否存在可能的拼写错误。

如果这是一个新项目,您可以调用

npm init 

使用 node 命令可以初始化您的项目并为您创建一个 package.json 文件。

官方文档中提到:

描述: npm init 可用于设置新的或现有的 npm 包。

在本例中,initializer 是一个名为 create- 的 npm 包,它将被 npx 安装,然后执行其主要 bin -- 可能会创建或更新 package.json 并运行任何其他初始化相关操作。

init 命令将转换为相应的 npx 操作,如下所示:

  • npm init foo -> npx create-foo
  • npm init @usr/foo -> npx @usr/create-foo
  • npm init @usr -> npx @usr/create

任何其他选项都将直接传递给命令,因此 npm init foo --hello 将映射到 npx create-foo --hello。

如果省略了 initializer(只调用 npm init),则 init 将回退到旧版的 init 行为。它将询问您一些问题,然后为您编写 package.json。基于现有字段、依赖项和选择的选项,它将尝试做出合理的猜测。它是严格增量的,因此它将保留已设置的任何字段和值。您还可以使用 -y/--yes 跳过整个问卷调查。如果传递 --scope,则会创建一个作用域包。

有关更详细的信息,请阅读有关 npm init 的官方文档。


6

我也遇到过这种情况。后来发现当我运行npm命令时,我所在的目录是错误的,这就是为什么出现错误消息的原因。使用cd命令更改目录后,问题得到了解决。


0

验证您的路径 "C:\Users\shagy\Desktop\3RD YEAR 2ND SEMESTER\SPM\New folder\SPM-SMS" 是否真的有 package.json 文件?如果没有,则必须重新安装 npm(命令为“npm init”),以确保 package.json 文件出现在与错误中提到的同一目录中。希望这可以帮助您!


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