由于误删了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搞上去。虽然我没试过,但是估计是可以的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JS第一天、数据类型检测、内存释放

复习: 以下类型都是 object console.log(typeof new Object); console.log(typeof new Array()); console.log(typeof new Date()); console.log(typeof new RegExp()); console.log(typeof new String()); console.log(typeof new Number()); console.log(typeof…

内裤洗衣机到底值不值得买?四款好用的内衣裤洗衣机推荐

随着内衣洗衣机的流行,很多小伙伴在纠结该不该入手一款内衣洗衣机,专门来洗一些贴身衣物,答案是非常有必要的,因为我们现在市面上的大型洗衣机只能做清洁,无法对我们的贴身衣物进行一个高强度的清洁,而小小…

Zoho Projects与Jira:中国市场的理想替代品之争?

在软件开发生命周期中,项目管理一直是一个非常重要的环节。为了更好地协作、追踪项目的进程和管理任务,许多公司选择了Jira这款著名的项目管理工具,它是个非常强大的工具,但是作为一款纯国外产品,他可能不适合中国市场…

CCReportAdv的一个配置技巧

关于CCReportAdv CCReportAdv是我们推出的基于经典WinCC/TIA WinCC Prof.的一款报表控件。它支持导入Excel模板,可以灵活生成美观的数据报表。 配置示例 CCReportAdv功能非常强大。通过简单的配置就可以生成客户需要的报表。以下面这款报表为例,参见下面…

STM32F407 CAN参数配置 250Kbps

本篇CAN参数适用 芯片型号:STM32F407xx系统时钟:168MHz,CAN挂载总线APB1为42M波 特 率 :250Kpbs引脚使用:TX_PB9,RX_PB8;修改为PA11PA12后,参数不变。 步骤一、打勾开启CAN&#xf…

20240131在ubuntu20.04.6下使用whisper不同模式的比对

20240131在ubuntu20.04.6下使用whisper不同模式的比对 2024/1/31 16:07 首先你要有一张NVIDIA的显卡,比如我用的PDD拼多多的二手GTX1080显卡。【并且极其可能是矿卡!】 2、请正确安装好NVIDIA最新的驱动程序和CUDA。可选安装! 3、配置whisper…

CTFshow 5——23

借鉴博客 misc5 下载完后,用winhex打开 在最后就可以找到flag misc6 和misc5一样 (推测:可能是jpg这种看得见的图片,用winhex) misc7 misc8 前置工具安装 这里可以看看见两个png 然后我们在我们的文件夹里面有个…

Oracle12c之修改连接数后导致的故障处理

Oracle12c之修改连接数后导致的故障处理 文章目录 Oracle12c之修改连接数后导致的故障处理1. 故障原因2. 故障信息3. 解决方法1. 首先登陆到数据库,创建临时pfile2. 手动修改创建的pfile.bac3. 以创建的临时文档启动数据库实例4.按照临时pfile中的内容重新创建pfile…

解决浏览器端 globalThis is not defined 报错

解决浏览器端 globalThis is not defined 报错 前言解决办法&#xff1a; 前言 在使用低版本火狐浏览器出现报错globalThis is not defined 解决办法&#xff1a; 在vue的index.html 中添加 this.globalThis || (this.globalThis this) <head><script>this.g…

C语言搭配EasyX实现贪吃蛇小游戏

封面展示 内部展示 完整代码 #define _CRT_SECURE_NO_WARNINGS #include<easyx.h> #include<stdio.h> #include<mmsystem.h> #pragma comment (lib,"winmm.lib") #define width 40//宽有40个格子 #define height 30//长有40个格子 #define size 2…

C++学习Day01之参数的传递方式

目录 一、程序及输出1.1 值传递1.2 地址传递1.3 引用传递1.5 引用注意事项1.5.1 引用必须引一块合法内存空间1.5.2 不要返回局部变量的引用1.5.3 当函数返回值是引用&#xff0c;那么函数的调用可以作为左值 二、分析与总结 一、程序及输出 1.1 值传递 #include<iostream&…

idea创建spring项目

一、环境 window10 IDEA 2022.2.3 maven-3.8.6 二、创建spring项目 1、新建Maven项目 File -> New -> Project 然后如下图选中Maven Archetype&#xff0c;在Archetype&#xff0c;选中maven-archetype-webapp&#xff0c;点击Create 2、配置maven 默认是使用IDEA内…

万能写作辅助器设计

为了构建一个万能写作辅助器,我们需要设计几个关键组件,每个组件都有其特定的功能和交互方式。以下是这些组件的详细设计和描述: 对话生成器(Dialogue Generator) 功能:生成对话内容。输入:可接受拖拽过来的组件,如角色名称、情感标签、场景描述等。管理:能够管理各种…

flinkcdc 3.0 架构设计学习

本文将会了解到flinkcdc3.0版本的架构设计,从一个宏观层面来学习flinkcdc3.0带来的新特性 这也是作者目前觉得学习一项技术的思路和方法,就是首先先把demo跑起来体验一下,然后整体了解一下架构设计,应用场景等,之后再去学习技术细节和源码,由浅入深的学习. 文中内容有误请多多包…

springwebflux高性能服务

场景&#xff1a; 分别使用springwebmvc 使用tomcat &#xff08;tomcat 9&#xff09;和springwebflux 做一个简单的接口 &#xff0c;该接口返回一个随机数 压测环境&#xff1a; 4C 8G ECS 使用tomcat 压测结果 Max 抖动的厉害 保持压测的参数不变 使用webflux 压测结果 …

SpringBoot注解--06--注解@Validated

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1 简述1.1 Validated作用1.2 所有参数注解含义1.3 异常处理1.4 Valid和Validated比较Valid级联校验 2.Validated 分组校验1.1为何要分组校验&#xff1f;1.2 代码案…

Leetcode—535. TinyURL 的加密与解密【中等】

2024每日刷题&#xff08;110&#xff09; Leetcode—535. TinyURL 的加密与解密 实现代码 class Solution { public:// Encodes a URL to a shortened URL.string encode(string longUrl) {while(!urlToCode.count(longUrl)) {string code;for(int i 0; i < 6; i) {code…

【EEG信号处理】时频图与时频图的观察

非常快速和松散的介绍频谱和时频分析 当我们看到一个时频图时&#xff0c;我们应该考虑什么&#xff0c;应该有什么样的问题 什么是time-frequency plots 我们知道&#xff0c;左边是在时间维度上&#xff0c;根据电极的变化来绘制的折线图&#xff0c;他在时间维度上的&#…

系统架构20 - 统一建模语言UML(上)

统一建模语言 组成要素事物关系 在目前的软件开发方法中&#xff0c;面向对象的方法占据着主导地位。面向对象方法的主导地位也决定着软件开发过程模型化技术的发展&#xff0c;面向对象的建模技术方法也就成为主导的方法。 公认的面向对象建模语言出现于20世纪70年代中期。从1…