由于误删了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.mzph.cn/news/666442.shtml

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

相关文章

JSR303参数校验-SpringMVC

文章目录 JSR303技术标准简介JSR303标准几个具体实现框架validation-apijakarta.validation-apihibernate-validatorspring-boot-starter-validation Spring Validationjavax.validation.constraints包下提供的注解org.hibernate.validator.constraints包扩展的注解校验注解默认…

deb 打包

二进制打包 dpkg-deb -b [package] file.db二进制解包 dpkg-deb -R file.db [dir]快速打包脚本 #!/bin/bash -e if ! [[ $# -eq 1 ]] || ! [[ -d $1 ]] ; thenecho "$0 [Package]"exit 1 fipkg$(basename $1)/DEBIAN mkdir -p ${pkg} $(basename $1)/opt mkdir -p …

内衣洗衣机是不是鸡肋?好用的小型洗衣机全自动推荐

随着大家工作的压力越来越大,下了班之后只能想躺平,在洗完澡之后看着还需要手洗的内衣裤真的很头疼。有些小伙伴还有会攒几天再丢进去洗衣机里面一起,而且这样子是非常不好的,用过的内衣裤长时间不清洗容易滋生细菌,而…

无人机遥感技术在地质灾害监测应用分析,多旋翼无人机应急救援技术探讨

地质灾害是指在地球的发展演变过程中, 由各种自然地质作用和人类活动所形成的灾害性地质事件。给人民的生命和财产安全带来严重威胁,因此有必要开展地质灾害预测预报、灾害应急和风险区划 遥感技术的快速发展为我们提供了一种获取实时灾害信息的可靠手段…

陪女朋友学习计算机二级之数据库笛卡尔积和自然连接

数据库中的基本关系运算 交 和数学中的交集类似,但是需要相同的表模式 如果俩个表有相同的关系模式如表1为(ID,姓名,学号)表2为ID,姓名,学号) 表1 表2 交之后就可以变成 并 和数…

水面漂浮物监测识别摄像机

水面漂浮物监测识别摄像机是一种用于监测水域表面上漂浮物的设备,可以帮助环保部门或海洋研究机构快速发现和识别水中的浮游物,有助于保护水质和生态环境。这种摄像机通常具有以下功能和特点: 高分辨率摄像头:配备高清晰度摄像头&…

【数据分享】1929-2023年全球站点的逐日降雪深度数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、能见度等指标,说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 之前我们分享过1929-2023年全球气象站点的逐日平均气温数据、逐日最高气温数据…

TypeScript文档记录

TypeScript文档记录 1、TypeScript基础1.2 JavaScript1.3 性能 - 使网站快速响应 TypeScript Documentation ArkTS 语言 | 华为开发者联盟 1、TypeScript基础 面向编程初学者的 TypeScript,请记住: TypeScript 是带有编译时类型检查器的 JavaScript 运行…

学习spring第十四天

Spring注解方式整合第三方框架 xml整合MyBatis方式,如下 用注解方式代替xml方式如下 : 在配置类上加上 MapperScan("com.itheima.mapper") MapperScan("com.itheima.mapper") //MyMapperScan 在配置类里写入代码如下 Beanpublic DataSource dataSourc…

【C语言】(15)指针进阶

1. 指针与const 在C语言中,const关键字和指针一起使用时,可以创建对常量的引用,或者创建指向常量的指针。这对于保护重要数据不被意外修改以及提高程序的可读性和运行时的安全性非常有用。 1.1 const的基本用法 const关键字用于声明一个变…

风控安全产品系统设计

风控业务架构 我把风控业务架构的分层分为6层,分别是组件层、业务层、决策层、能力层、计算层、可视层。 以下基建为基础安全产品的简称。 组件层 组件层的职责是:数据收集与行为反制。 从接口、设备、行为三个维度进行数据收集,接收决策层的指令进行行为反制。为了保证…

Go语言深度解析:探索 crypto/md5 标准库的强大功能

Go语言深度解析:探索 crypto/md5 标准库的强大功能 引言Go语言和MD5的基础知识MD5算法简介Go语言概述Go中的MD5实现 crypto/md5 库的使用方法基本用法处理大型数据安全注意事项 实际案例分析示例1:文件的MD5校验示例2:网络数据的MD5哈希示例3…

【C++】运算符重载详解

&#x1f497;个人主页&#x1f497; ⭐个人专栏——C学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 导读 1. 为什么需要运算符重载 2. 运算符重载概念 3. 运算符重载示例 3.1 运算符重载 3.2 >或<运算符 4. 运算符重…

面试数据结构与算法总结分类+leetcode目录【基础版】

&#x1f9e1;&#x1f9e1;&#x1f9e1;算法题目总结&#xff1a; 这里为大家总结数据结构与算法的题库目录&#xff0c;如果已经解释过的题目会标注链接更新&#xff0c;方便查看。 数据结构概览 Array & String 大家对这两类肯定比较清楚的&#xff0c;同时这也是面试…

SVDiff: Compact Parameter Space for Diffusion Fine-Tuning——【论文笔记】

本文发表于ICCV 2023 论文地址&#xff1a;ICCV 2023 Open Access Repository (thecvf.com) 官方代码&#xff1a;mkshing/svdiff-pytorch: Implementation of "SVDiff: Compact Parameter Space for Diffusion Fine-Tuning" (github.com) 一、Introduction 最近几…

Vue3中使用tsx文件

1. 安装 npm install vitejs/plugin-vue-jsx -D2. 配置vite.config.ts import { defineConfig } from vite import vue from vitejs/plugin-vue import path from path import vueJsx from "vitejs/plugin-vue-jsx"// https://vitejs.dev/config/ export default d…

11:Servlet中初始化参数的获取与应用-Java Web

目录 11.1 Servlet初始化参数简介11.2 如何在Servlet中获取初始化参数11.3 基于注解的初始化参数&#xff08;Servlet 3.0&#xff09;11.4 区别总结11.5 应用场景总结 在构建Java Web应用程序时&#xff0c;Servlet是核心组件之一&#xff0c;它负责处理HTTP请求并生成响应。而…

五大架构风格之四-虚拟机架构风格

虚拟机架构风格&#xff1a; 虚拟机架构风格是一种软件架构&#xff0c;它通过模拟完整的计算机系统&#xff08;包括硬件&#xff09;来运行程序。这种风格的核心是虚拟机监控器。如最出名的虚拟机VM&#xff0c;在使用虚拟机架构&#xff0c;一个或多个虚拟机可以在单一物理主…

标题:揭秘Java中Thread.sleep(0)的微妙用法与实战解析

引言 在深入研究Java多线程编程时&#xff0c;我们经常会遇到一个看似不起眼但颇具实用价值的方法——Thread.sleep(0)。乍一看&#xff0c;让一个线程“休眠”零毫秒似乎是一个没有意义的操作&#xff0c;但实际上&#xff0c;它在并发编程场景中扮演着重要的角色。本文将详细…