由于误删了node依赖,导致这后面的一系列操作

文章目录

  • 1. 事发原因:Delete select files
  • 2. Delete select files引起的cross-env报错
  • 3. cross-env是node_modules的依赖工具
  • 4. 那么Delete selected files到底是什么操作
  • 5. 重装node_modules依赖包,也报错
  • 6. 报错:cb() never called!
  • 7. 算了,麻了,重装node吧
  • 8. 现在我再来install一下
  • 9. 分析前端依赖包的流程(package.json与package-lock.json)
  • 10. 到现在就是下载不下来,到底是什么问题
  • 11. 最后的杀手锏

1. 事发原因:Delete select files

由于我不想提交node_module文件夹,然后选择了Delete select files
在这里插入图片描述

2. Delete select files引起的cross-env报错

后面就开始出现依赖报错了

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

3. cross-env是node_modules的依赖工具

这是百度出来的答案,简单来说就是nodeJS的工具,并存放在node_modules/.bin文件夹

这个错误信息表示系统无法找到 cross-env 命令。cross-env 是一个用于跨平台设置 Node.js 环境的工具,它允许你在不同的操作系统上使用统一的变量设置。

从上述解释来看,出现'cross-env' 不是内部或外部命令,也不是可运行的程序 或批处理文件。这个问题,确实是因为SVN Delete select files,导致依赖包被删除。

4. 那么Delete selected files到底是什么操作

首先,VS Code的svn插件,是用来与svn仓库交互的,Delete Selected files就是用来删除你选中的文件的,并将这一删除操作提交到svn仓库中。

误区:之前一直以为Delete Selected files的意思是,不提交这些文件。

5. 重装node_modules依赖包,也报错

根据网上的各种花里胡哨的答案,执行了以下操作

  • 删除下载好的node_modules
  • 删除package-lock.json文件
  • 清除npm缓存 npm cache clean --force
  • npm install

然后直接出现这个错误

npm ERR! code CERT_HAS_EXPIRED
npm ERR! errno CERT_HAS_EXPIRED
npm ERR! request to https://registry.npm.taobao.org/cnpm failed, reason: certificate has expired
npm ERR! A complete log of this run can be found in: D:\nodejs\node_cache_logs\2024-01-23T11_00_28_143Z-debug-0.log

这是又是什么原因呢?

其实,早在 2021 年,淘宝就发文称,npm 淘宝镜像已经从 registry.npm.taobao.org 切换到了 registry.npmmirror.com。旧域名也将于 2022 年 5 月 31 日停止服务。不过,直到2024年1 月 22 日, HTTPS 证书到期才真正不能用了(registry.npm.taobao.org)这就导致旧的 npm 淘宝镜像在使用时出错了。

那就更换镜像

  • 清空缓存:npm cache clean --force
  • 切换新源:npm config set registry https://registry.npmmirror.com
  • 查看源是否设置成功:npm config get registry

6. 报错:cb() never called!

重新再执行一波操作

  • 删除下载好的node_modules
  • 删除package-lock.json文件
  • 清除npm缓存 npm cache clean --force
  • npm install

但是出现了新的报错(此时我已经在骂街了!这 ni 马又是什么问题)
在这里插入图片描述
下面我总结了网上的几种解决方法(都不行!)
方法一

  • 删除下载好的node_modules
  • 删除package-lock.json文件
  • 清除npm缓存 npm cache clean --force
  • npm install

方法二

  • npm cache clean -f
  • npm install -g n --force // 强制安装最新版本的Node helper
  • n stable // 告诉助手(n)安装最新的稳定版Node
  • npm install

方法三

  • npm i // npm install失败,npm i能成功

7. 算了,麻了,重装node吧

这里我是通过nvm管理的node,所以通过以下操作重装node
查看当前使用版本:nvm list install
在这里插入图片描述
那就先切换成16.14.1:nvm use 16.14.1
在这里插入图片描述
卸载14.15.3:nvm uninstall 14.15.3
重装14.15.3:nvm install 14.15.3
在这里插入图片描述
使用14.15.3:nvm use 14.15.3
在这里插入图片描述

注意:可能出现以下两个错误
问题1:其实就是镜像过期了
在这里插入图片描述
解决办法:在settings.txt文件中,添加这两行代理

  • node_mirror: https://npmmirror.com/mirrors/node/
  • npm_mirror: https://npmmirror.com/mirrors/npm/

在这里插入图片描述

问题二:纯纯网络问题,多install几次,直到成功吧
在这里插入图片描述

8. 现在我再来install一下

还是之前的操作,复述一遍,因为好多读者直接看后面的解决方案,不看前面的文案。

  • 删除下载好的node_modules
  • 删除package-lock.json文件
  • 清除npm缓存 npm cache clean --force
  • npm install

很好,没有成功,出现重复的错误,闭环成功!
在这里插入图片描述
说明了什么呢?很可能就不是什么过期不过期的问题。由于我是刚学了几天前端就开始做项目的,所以接下来好好分析一下前端到底怎么使用依赖包的。

9. 分析前端依赖包的流程(package.json与package-lock.json)

package.json与package-lock.json

  • 首先:package.json不会自动生成的,需要执行npm init命令
  • 其次:package-lock.json是自动生成的,当我们使用 npm install 安装包后就会自动生成。

这里就不说什么是依赖包了,主要是说一下npm install的流程。

  1. npm获取完package.json配置文件之后,就会构建依赖树。
  2. 检查项目中是否有 package-lock.json 文件:存在 lock 文件的话,会判断 lock 文件和 package.json 中使用的依赖版本是否一致,如果一致的话就使用 lock 中的信息,反之就会使用 package.json 中的信息;
  3. 那如果没有 lock 文件的话,就会直接使用 package.json 中的信息生成依赖树。

npm install 命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。
vue文件引入的依赖是从哪里来的
在这里插入图片描述

10. 到现在就是下载不下来,到底是什么问题

关于依赖的知识就先了解到这里,要回到项目本身
我们想想,首先node、npm都是重装了的,但是install就是报错,那么我们就继续分析原因。

  • node是使用依赖包的,先排除了。
  • npm是用来从源下载依赖包的,已经重装,应该没问题。(但不敢确定是不是真的没问题)
  • 依赖包从源拿来的,那么源是不是有些依赖包不存在呢?(这个概率很大)

那么我们就切换回原来的国外npm源

npm config set registry https://registry.npmjs.org

再次install

  • 删除下载好的node_modules
  • 删除package-lock.json文件
  • 清除npm缓存 npm cache clean --force
  • npm install

在这里插入图片描述
还真的成功了。(其实我知道这可能是碰巧,但是我不敢删了重试验证,因为我项目也挺紧的)

11. 最后的杀手锏

如果最后你切换了各种源,install了n次,还是失败,建议直接找其他同事要一个项目使用node_module搞上去。虽然我没试过,但是估计是可以的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/451542.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初识webpack(一)概念、入口配置、输出配置、loader等

目录 (一)概念 webpack的依赖图 (二)webpack的基本使用 (三)webpack的配置文件 1.入口(entry)配置 2.输出(output)配置 (三)loader 1.css文件处理 (1)安装css-loader和style-loader (2)在webpack.config.js中配置loader 2.less文件处理 3.postcss的使用 (1)安装…

分析网站加载性能各项指标、Lighthouse工具的使用

分析网站首次加载的性能可以通过查看多个关键指标来实现。以下是一些常见的性能指标以及如何分析它们: 如何分析网站首次加载的性能各项指标 首次内容绘制(First Paint): 定义: 首次内容绘制是指浏览器第一次将像素呈…

《云原生安全攻防》-- 容器安全风险分析

在本节课程中,我们将提供一个全面的视角,来深入探讨容器环境下的安全风险,帮忙大家建立起容器环境下安全风险的整体认知。 在这个课程中,我们将学习以下内容: 容器技术概述:什么是容器技术以及它解决了什么…

BAPI创建会计凭证和冲销凭证

目录 BAPI创建会计凭证和冲销凭证组件 利润中心冲销不可能原因由于一个变量为空导致不可以冲销 代码附上创建会计凭证代码冲销会计凭证代码 BAPI创建会计凭证和冲销凭证 在使用冲销会计凭证的BAPI,即BAPI_ACC_DOCUMENT_REV_POST时,遇到下面的问题&#…

【DDD】学习笔记-什么是模型

从领域驱动的战略设计进入战术设计,简单说来,就是跨过系统视角的限界上下文边界进入它的内部,从分层架构的逻辑分层进入到每一层的内部。在思考内部的设计细节时,首先需要思考的问题就是:什么是模型(Model&…

Linux网络协议栈从应用层到内核层①

文章目录 1、socket系统调用源码剖析2、struct socket 是如何创建的3、struct socket 和文件的联系4、相关数据结构的联系5、socket系统调用的整体流程图 1、socket系统调用源码剖析 系统调用原型 int socket(int domain, int type, int protocol);domain:表示协议…

【51单片机】74HC595芯片实现单片机 IO 扩展(串转并)和 LED点阵实验

目录 单片机 IO 扩展(串转并)74HC595 芯片介绍硬件设计软件实验实验现象 LED点阵实验LED 点阵介绍硬件设计软件设计LED点阵(点亮一个点)LED 点阵(显示数字)LED 点阵(显示图像) 橙色 …

为电信应用选择电阻器

用于电信应用的高规格电阻器可用于网络设备、语音通信、VOIP、路由器、网桥、多路复用器、光纤/有线转换器、滤波、阻抗匹配、信号调理和电源管理。 物联网 (IoT) 设备的采用、5G 等技术的发展以及向 VOIP 的转变产生了对更小(表面贴装&#…

大小姐驾到!高德地图联合《王者荣耀》推出孙尚香导航语音包

“大小姐驾到!统统闪开!”如果你是一个手游爱好者,多半会对这句话耳熟能详,来自于国内手游界顶流《王者荣耀》中的高人气角色——孙尚香,并成为一代玩家们的记忆。 如今,随着高德地图与《王者荣耀》达成合…

26条prompt规则应用于大模型

1、引入动机 llm大模型在回答一些问题上表现出了惊人的能力,例如数学逻辑推理,代码生成,问题答复等。提词工程是和大预言模型交流的一门艺术。 大模型的返回结合和用户的指令和输入直接相关prompts是用户和大模型沟通的一种编码方式 一般地…

day3作业

第三章 类与构造函数 一.选择题 1、下列不能作为类的成员的是(A) A. 自身类对象的指针 B. 自身类对象 C. 自身类对象的引用 D. 另一个类的对象 2、假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象&#xf…

总观看量已超千万!新就业形态劳动者新春联谊会成功播出

春节到来之际,由中华全国总工会主办,中国海员建设工会、中国国防邮电工会、中国财贸轻纺烟草工会、中华全国总工会文工团联合承办,中国职工发展基金会协办,北京市总工会支持的“温暖有你 共赴美好”2024年新就业形态劳动者新春联谊会,于2月2日晚8点在新华网、央视频、全国总工会…