【npm问题】报错信息

发布于:2024-10-17 ⋅ 阅读:(7) ⋅ 点赞:(0)

一、问题

npm ERR! code FETCH_ERROR npm ERR! errno FETCH_ERROR npm ERR! invalid
json response body at https://r.cnpmjs.org/npm reason: Invalid
response body while trying to fetch https://r.cnpmjs.org/npm: Socket
timeout

npm ERR! A complete log of this run can be found in:
FETCH_ERRORSocket timeout 错误通常是由于网络连接不稳定、超时或 npm 源的响应有问题引起的。以下是一些建议来解决这个问题:

1. 切换 npm 源

如果你目前使用的是 https://r.cnpmjs.org/,你可以尝试切换到其他更可靠的源。以下是几个常用的 npm 源:

  • 官方 npm 源:
    npm config set registry https://registry.npmjs.org/
    
  • 淘宝镜像源(更适合国内使用):
    npm config set registry https://registry.npmmirror.com/
    

切换之后,再尝试运行 npm install 看是否能解决问题。

2. 增加超时时间

你可以尝试增加 npm 的超时时间,以避免网络请求因为短暂的延迟导致超时。使用以下命令:

npm config set fetch-retries 5
npm config set fetch-retry-factor 10
npm config set fetch-retry-mintimeout 30000
npm config set fetch-retry-maxtimeout 120000
npm config set timeout 120000

这些设置将增加 npm 的重试次数和超时限度,以应对不稳定的网络。

3. 清除 npm 缓存

有时缓存中的不完整或损坏的包文件可能会导致问题。你可以尝试清除 npm 缓存:

npm cache clean --force

然后再尝试重新安装依赖:

npm install

4. 使用 VPN

如果你在国内并且切换 npm 源后问题仍然存在,确保你的 VPN 正常工作,可以尝试切换到另一个服务器节点。

5. 手动安装依赖

如果某些依赖包总是遇到 FETCH_ERROR,你可以尝试手动下载相关的 .tgz 包,然后使用以下命令本地安装:

npm install /path/to/package.tgz

6. 检查网络连接

你可以检查网络连接,使用 ping 命令确认能否连接到 registry.npmjs.org 或者 r.cnpmjs.org,确保没有 DNS 解析问题。你也可以尝试更改 DNS 配置,使用公共 DNS(如 Google 的 8.8.8.8 或 Cloudflare 的 1.1.1.1)。

7. 升级 npm

如果以上方法仍然无法解决问题,尝试升级 npm 到最新版本:

npm install -g npm@latest

二、检查vue是否安装

vue-cli-service serve

‘vue-cli-service’ 不是内部或外部命令,也不是可运行的程序 或批处理文件

vue -V 检查下
'vue-cli-service' 不是内部或外部命令,也不是可运行的程序或批处理文件 的错误通常意味着系统没有正确识别 vue-cli-service,可能是因为以下几个原因:

1. 全局安装 Vue CLI

如果你还没有全局安装 Vue CLI,尝试全局安装它:

npm install -g @vue/cli

这将会安装 vue-cli-service,确保你可以在任何目录中运行 vue-cli-service serve

2. 项目依赖未安装

确保你已经在项目目录中安装了依赖。执行以下命令来安装项目中的依赖:

npm install

这样会下载并安装项目中 package.json 中指定的依赖。

3. 没有安装 @vue/cli-service

如果你的项目中没有安装 @vue/cli-service,你可以尝试安装它:

npm install @vue/cli-service --save-dev

@vue/cli-service 是 Vue CLI 项目中的核心服务,它为开发提供诸如 servebuild 等命令。

4. 使用本地安装的 vue-cli-service

如果你不想全局安装 @vue/cli,可以通过使用本地安装的 vue-cli-service 来启动项目。尝试运行:

npx vue-cli-service serve

npx 会自动调用项目中的 vue-cli-service,即使你没有全局安装它。

5. 检查环境变量

如果你已经全局安装了 Vue CLI 但仍然无法识别命令,可能是因为环境变量未正确配置。你可以尝试手动将 npm 全局包的路径添加到系统的 PATH 环境变量中:

  • 对于 Windows:全局包通常位于 C:\Users\你的用户名\AppData\Roaming\npm。确保此路径添加到了系统 PATH 中。
  • 对于 macOS 或 Linux:可以在 .bashrc.zshrc 中添加:
    export PATH=$PATH:$(npm bin -g)
    

总结步骤:

  1. 全局安装 Vue CLI:npm install -g @vue/cli
  2. 在项目目录下安装依赖:npm install
  3. 确保项目安装了 @vue/cli-servicenpm install @vue/cli-service --save-dev
  4. 使用 npx 运行:npx vue-cli-service serve

网站公告

今日签到

点亮在社区的每一天
去签到