npm错误!enoent ENOENT:未找到文件或目录,打开'C:\ Users \ ... \ package.json'。

4

我正在进行VueJS的教程。我完全是新手,所以不太确定自己在做什么。 我按照所有的指示安装了所有的包,在VSCode终端中做了如下检查:

PS C:\Users\...\Documents\Vue - Getting Started> node --version
v12.18.0
PS C:\Users\...\Documents\Vue - Getting Started> npm --version
6.14.5
PS C:\Users\...\Documents\Vue - Getting Started> vue --version
@vue/cli 4.4.1

然而,每当我按照教程所示试图运行npm run serve时,它会显示一个错误,指出缺少package.json文件:
npm ERR! enoent ENOENT: no such file or directory, open 'C:\Users\...\package.json'

我检查了一下,我的用户文件夹中确实没有名为package.json的文件,只有一个名为package-lock.json的文件。

我还注意到,在教程视频中,终端显示了类似于1: node 的内容,而在我的终端中,我可以看到1: powershell。以下是截图:

终端屏幕截图

我缺少什么?谢谢


根据El的建议,我执行了npm init,并在我的项目文件夹中创建了一个package.json文件。在文件中,我添加了El建议的代码段。整个package.json文件现在如下所示:

{
  "name": "package.json",
  "version": "1.0.0",
  "description": "package json",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "serve": "node index.js"
  },
  "author": "",
  "license": "ISC"
}

我现在遇到了这个错误:

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! package.json@1.0.0 serve: `node index.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the package.json@1.0.0 serve script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

开始任何JavaScript项目,您需要使用npm init来进行项目配置。 - El.
你能在这里发布教程链接吗? - dangxuanvuong98
根据错误信息显示,NodeJS 试图在另一个文件夹中查找 package.json,而不是项目文件夹。 - dangxuanvuong98
@dangxuanvuong98,“another folder” 是 Windows 用户根文件夹。 - El.
@El。是的,我知道,但为什么NodeJS要在根文件夹中查找package.json。请注意,该命令是从C:\ Users \ ... \ Documents \ Vue-入门调用的。 - dangxuanvuong98
显示剩余2条评论
3个回答

6
我认为并不需要解释Nodejs ENOENT错误,因为它的错误信息已经非常明显了:“没有这个文件或目录”,这就意味着你想要用npm或node运行的“index.js”文件或任何文件都不在当前目录中。首先,你需要检查一下自己是否在项目的根目录下,接着,在项目的根目录下你需要有一个配置文件,它叫做JavaScript(Nodejs、React、TypeScript等)项目的“package.json”。为了创建这个配置文件,你可以使用“npm init”命令,并且它会询问你一些预设问题来了解你的项目。为了启动或为你的项目提供服务,你必须在“package.json”文件中拥有像这样的脚本标签:
'scripts':{
  'serve': 'node index.js',
}

如果您想运行package.json文件中的serve命令,可以在项目根目录下使用npm run serve命令。

对于我不熟悉的VueJS,我认为您的项目根目录中有一个index.html文件,并且已经安装了vue。我猜想您需要将node index.js替换为以下命令来运行Vue应用:

'scripts':{
  'serve': 'vue index.html',
}

并运行npm run serve


谢谢 - 我在我的项目文件夹中创建了一个 package.json 文件。现在当我尝试运行 npm run serve 时,我得到以下错误:npm ERR! missing script: serve。你提到的脚本应该放在哪里?我只有一个 index.html 文件... - julia2019
1
将其添加到您的package.json文件中。 - El.
遇到另一个问题,正在更新我的原始问题。 - julia2019
你也必须有一个 index.js 文件。 - El.
添加了一个空的 index.js 文件,现在我收到以下消息(服务器无法启动):`> package.json@1.0.0 serve C:\Users....\Documents\Vue - Getting Started
node index.js`,然后什么也没有发生。
- julia2019
好的,我明白了。请将 "serve": "node index.js" 更改为 "serve": "vue index.html",然后告诉我结果。 - El.

0
删除项目文件夹,然后创建Vue项目。
vue create my-project

这是对我来说的工作方式


0

我用以下命令解决了这个问题:

// Locate to the folder, where the "node_modules" directory is stored

rm node_modules
npm i

目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

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