npm i 出现 npm WARN saveError ENOENT: no such file or directory 怎么解决?

作者: xusx 分类: JavaScript 发布时间: 2022-03-27 09:38 浏览:39

问题

例如:npm 安装 koa,虽然安装成功,但出现一些WARN:

E:\xushanxiang\nodeproj\koaproj>npm i koa
npm WARN saveError ENOENT: no such file or directory, open 'E:\xushanxiang\nodeproj\koaproj\package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open 'E:\xushanxiang\nodeproj\koaproj\package.json'
npm WARN koaproj No description
npm WARN koaproj No repository field.
npm WARN koaproj No README data
npm WARN koaproj No license field.

+ koa@2.13.4
added 42 packages from 25 contributors in 6.135s

4 packages are looking for funding
  run `npm fund` for details

原因

根据错误提示,是系统没有 package.json 这个文件导致。这个文件的作用就是管理你本地安装的 npm 包,一个 package.json 文件可以做如下事情:

package.json 是 node 项目用来记录作者,项目入口,项目描述,项目依赖,启动脚本,项目版本号,项目ip代理,开源许可等其他的项目相关信息,通过 package.json 可以进行npm包的发布与项目依赖的安装。

npm install 命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。

与之还会存在 package-lock.json 文件,会具体项目所需依赖的版本等其他信息。

解决

所以,我们 创建一个 node.js 项目 ,可以先输入 npm init,按照提示填写包信息,选择默认或不填写直接回车,效果等同 npm init -y。执行完命令后可以看到用户路径下多了一个 package.json 文件。如下:

{
  "name": "koaproj",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "dependencies": {
    "koa": "^2.13.4"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

数据含义:
name:项目名称(必须)
version:项目版本(必须)
description:项目描述
author:作者
private:是否私有
config:用于向环境变量输出值。
scripts:指定了运行脚本命令的npm命令行缩写,比如start指定了运行npm run start时,所要执行的命令。
dependencies:项目运行所依赖的模块,运行模式-S
devDependencies:项目开发所需要的模块,开发模式-D
engines:指明了该项目所需要的node.js版本
browserslist:说明这个项目的浏览器兼容情况。也能根据提供的目标浏览器的环境来,智能添加css前缀,js的polyfill垫片,来兼容旧版本浏览器,而不是一股脑的添加。避免不必要的兼容代码,以提高代码的编译质量。

package.json文件可以使用npm init命令自动生成,也可以手工编写,要注意的是在 package.json 中不能有注释,否则会报错。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!