depcheck检查项目依赖的安装情况-帮你解决各种项目运行灵异事件

news2024/11/18 22:33:20

depcheck检查项目缺失的依赖

  • depcheck介绍与安装
    • 介绍
    • 安装
  • depcheck使用
    • 基础使用
      • 注意
    • 进阶使用
  • 删除多余的依赖
    • 注意

depcheck介绍与安装

介绍

工作中,以下的场景恐怕大家都有经历过:

从代码仓库上面 clone 的项目,自己本地一运行就报错…
用新电脑运行旧项目各种报错…(明明另一台电脑运行的好好的)
明明这个项目在公司电脑上运行正常,用我自己的电脑运行就各种错误,运行不起来?
项目在别人那里运行的好好地,拿到自己这边就跑不起来了…

前端在项目开发中,基本都是我们自己执行一下mpm i
来安装项目中的package.json文件中的依赖。
但是,多多少少会遇见依赖安装完了,但是 npm run serve 却跑不起来项目的问题,这种情况基本都是因为依赖没有安装完全(有时候就算没安装成功也不提示,或者提示了没注意到),这时候,使用 【depcheck】 来帮助你进行项目依赖自检,标识出你缺少安装package.json文件中的哪些依赖,或者提示出哪些package.json文件中的依赖你代码里并没有用到。

安装

你可以参考一下npm官网的介绍:
depcheck-npm
实际也就是直接npm install -g depcheck
在这里插入图片描述

depcheck使用

基础使用

在项目目录下直接执行命令 depcheck
在这里插入图片描述
或者 depcheck <你的项目目录路径>
在这里插入图片描述

注意

depcheck有时候会提醒你说一些依赖没用到,可以删掉,但是,vue项目肯定有用到这几个的,所以这里其实并不太准确,别完全相信它哈。
在这里插入图片描述

根据运行结果显示,我们就能得到,没有用到的本地依赖,开发依赖,缺失的依赖。所以我们可以按照他的提示来安装一下依赖,项目就能够运行啦!


进阶使用

depcheck [directory] [arguments]
1、第一个[directory]参数,是指项目的根目录(文件所在的位置)。如果未指定,则默认为当前目录,一般不写,如果写,参考上面。
2、第一个[arguments]参数,有以下的选择:

–skip-missing=[true | false] 默认false,表示是否检测Missing的依赖包

–ignore-bin-package=[true | false] 默认false,表示是否忽略包含bin条目的包

–json 表示所有包的检测结果以 json 格式输出,大概就是XX包在哪些文件使用了,{“包名”: [“path1”,“path2”]}

–ignores=“eslint,babel-” 表示要忽略的包名称(逗号分隔),比如 depcheck --ignores=“eslint,@babel/,babel-*”

–ignore-path 表示要忽略的文件的模式的文件的路径,比如 depcheck --ignore-path=.eslintignore

–ignore-dirs 已经弃用,使用 --ignore-patterns 替代,表示要忽略的目录名,逗号分隔–ignore-dirs=dist,coverage.

–ignore-patterns 表示要忽略的用逗号分隔的模式描述文件,比如depcheck --ignore-patterns=build/Release,dist,coverage,*.log.

如果觉得每次调用时去写这个参数太麻烦,也可以在项目中创建一个.depcheckrc文件,然后直接把这些配置写进去,每次执行都会带上这些配置了
在这里插入图片描述
更多进阶操作,请查看官方文档:depcheck-npm


删除多余的依赖

根据depcheck检测出来的内容,我们可以看一些没有用的依赖,经过自己核对后,确认没有用到的,就可以删掉了。
npm uninstall <包名>
注意不要直接去 package.json 中删除,因为 npm 提供自动生成 package-lock.json 锁包功能,你直接去json文件中去删没用的。(package.json 和 package-lock.json 保证了大家在协同开发的时候所用的依赖包和依赖包版本是一致的。当你的项目新增或者减少了依赖包,要把 package.json 和 package-lock.json 一起提交,这样别人拉取代码npm i 后,就能得到和你一模一样的依赖包以及依赖包版本)

注意

你自己本地uninstall依赖后,一定要自己再运行以下,没有问题不报错再提交到仓库,不然把别人坑了,等着被阿鲁巴。

删除多余的依赖包,只是会提升了 npm i 的速度,并不会提升打包的速度,也不会减小打包后 node_modules 的体积,因为没有使用的包本来也不会被打进去的

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

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

相关文章

Ruby和面向对象技术

Ruby和许多极为流行的编程语言都是面向对象的。多数的面向对象编程语言&#xff0c;每个对象都是一个样例或者既定类的实例以及独立对象的行为。 一、创建一个通用对象 创建一个通用对象 obj Object.new定义通用对象的行为 def obj.talk puts "I am an object"p…

MySQL远程连接

一、什么是mysq的远程连接? 1、本地连接 直接在本地使用mysqladmin命令登录 mysql -u root -p 解释如下: mysql:mysql 命令表示要启动 MySQL 客户端。-u root:-u 选项指定要使用的用户名。在这里,我们使用 root 用户名作为示例。-p:-p 选项需要用户输入密码。如果省…

Unexpected mutation of “dialogVisible“ prop.

问题记录&#xff1a; Vue2项目在封装element-ui的dialog组件时&#xff0c;eslint报错 Unexpected mutation of “dialogVisible” prop.eslintvue/no-mutating-props 大致意思是父组件传递过来的 dialogVisible 属性&#xff0c;不允许在子组件中修改父组件的值 解决方法&a…

qtabwidget 样式表

.QWidget{background-color: #ffffff; }/*设置TabWidget中QTabBar的样式*/ QTabWidget{background-color: #E6EBE8; } QTabBar::tab{background-color: #DEDEDE;font-family:Source Han Sans CN; /*设置tab中的文本的字体*/font-size:20pt;font-weight: normal;color:#3D3D3…

HCIP---BGP社团属性

文章目录 目录 文章目录 前言 一.BGP社团属性概述 公有社团属性 配置命令 前言 前文详细介绍了BGP的基础内容&#xff0c;本编将着重于BGP协议的另一个重点内容进行详解。 一.BGP社团属性概述 BGP社区属性是BGP路由协议中的一种特殊属性&#xff0c;可以用于指定一组AS号码&…

线程安全案例 --- 线程池

小王学习录 今日鸡汤什么是线程池为什么需要线程池1. 协程2. 线程池3. 什么是用户态和内核态使用线程池 --- java标准库1. 线程池的创建2. 工厂模式3. 线程池的使用ThreadPollExecutor类构造方法1. corePoolSize, maximumPoolSize 线程2. long keepAliveTime, TimeUnit unit 时…

paddlenlp:社交网络中多模态虚假媒体内容核查(特征篇)

初赛之特征构造 写在前面一、安装paddleOCR二、代码部分三、模型优缺点四、写在最后 写在前面 通过前面两篇文章的介绍&#xff0c;我们可以大致的知道模型用到的特征分为四块&#xff1a;qCap&#xff0c;qImg&#xff0c;captions&#xff0c;imgs。根据这些特征&#xff0c…

第一章 C语言程序设计Pro

考点一 C语言特点&#xff0c;C程序基本构成 数据类型丰富运算符丰富是一种中级语言&#xff08;高级&#xff09; //包含了中级和高级的特性数据类型检查不严格 //int和char通用 对下标的越界不报错 2021.下列属于计算机中高级语言的是&#xff08;…

嵌入式基础——哈弗结构

文章目录 1 什么是哈弗结构&#xff1f;2 哈弗结构单片机的特点3 什么是改进的(Enhanced)哈弗结构?4 写在最后 1 什么是哈弗结构&#xff1f; 哈佛结构是一种将程序指令存储和数据存储分开的存储器结构&#xff0c;如图所示&#xff1a; 哈佛结构是一种并行体系结构&#xf…

Consider using the `--user` option or check the permissions.

ERROR: Could not install packages due to an OSError: [WinError 5] 拒绝访问。: C:\\Users\\luckyli\\anaconda3\\envs\\CV\\Lib\\site-packages\\~orch\\lib\\asmjit.dll Consider using the --user option or check the permissions. 安装pytorch时遇到上述问题 通过以下…

Git Cherry Pick的使用

cherry-pick命令的基本用法 cherry-pick命令的基本语法如下&#xff1a; git cherry-pick <commit>其中&#xff0c;<commit>是要应用的提交的哈希值或分支名。该命令会将指定的提交应用到当前分支上&#xff0c;并创建一个新的提交。 使用场景 cherry-pick命令…

Jmeter-实现图片的上传和下载

图片上传 选中测试计划右键&#xff0c;添加->线程(用户)->线程组 配置线程组 上面分别是总次数&#xff0c;时间&#xff0c;循环次数&#xff0c;就是字面意思 选中你的线程组右键&#xff0c;添加->取样器->HTTP请求 配置HTTP请求 为了方便观看&#xff0c;这…

【C++基础】13. 结构体

文章目录 【 1. 结构体的定义 】【 2. 结构体成员的访问 】【 3. 结构体变量的声明 】【 4. 指向结构体的指针 】 数组与结构体&#xff1a;C/C 数组允许定义可存储相同类型数据项的变量。而结构体是 C 中另一种用户自定义的可用的数据类型&#xff0c;它允许我们存储不同类型的…

在vscode中配置git bash终端、git 源码管理

打开vscode文件->首选项->设置&#xff0c;打开设置搜索shell windows将以下配置添加到vscode中的settings.json中 注意&#xff1a; terminal.integrated.profiles.windows这个配置项是就是添加终端的terminal.integrated.defaultProfile.windows这个是配置默认选项的…

【Linux初阶】多线程3 | 线程同步,生产消费者模型(普通版、BlockingQueue版)

文章目录 ☀️一、线程同步&#x1f33b;1.条件变量&#x1f33b;2.同步概念与竞态条件&#x1f33b;3.条件变量函数&#x1f33b;4.条件变量使用规范&#x1f33b;5.代码案例 ☀️二、生产者消费者模型&#x1f33b;1.为何要使用生产者消费者模型&#x1f33b;2.生产者消费者模…

代理正向 反向代理

1.正向代理 主动发送流量 端口转发 反向代理 被动发送流量 正向代理的设置 画图 实验 利用 攻击机 外网 失控服务器 内网 外网都有 内部服务内网 使用工具 使用的恶意脚本 放到网页里 客户端 使用 网站访问 解析 一下 使用的工具 pyth…

Java学习_day01_hello java

构成 JDK JDK是java开发者工具&#xff0c;由JRE和一些开发工具组成。JRE JRE是java运行环境&#xff0c;由JVM和java核心类库组成。JVM JVM是java虚拟机&#xff0c;主要用来运行字节码。 执行过程 由IDE或文本编辑器&#xff0c;编写源代码&#xff0c;并将文件保存为*.ja…

谈谈 AOF

谈谈 AOF Append Only File&#xff0c;只追加文件。 AOF 文件存储的是具体的操作命令。 Redis 每执行一条写操作命令&#xff0c;执行完之后&#xff0c;就把该命令追加到 AOF_Buffer 缓冲区中&#xff0c;然后会使用某种写回策略&#xff0c;写回磁盘的AOF文件中。 Redis 重启…

【GD32】GD32F303串口设置DMA发生中断无法进入中断函数

在GD32F303官方提供的串口例程中&#xff0c;有一个DMA发生和接收中断例程&#xff0c;在模仿着写的过程中&#xff0c;能够正常发送数据&#xff0c;但是无法进入中断函数。DMA0_Channel3_IRQHandler函数时官方定义的弱函数&#xff0c;需要自己重新实现。如果开启了DMA0通道3…

ESP32单片机环境搭建(VScode + PlatformIO IDE)

一、环境搭建&#xff08;VScode PlatformIO IDE&#xff09; 1、官网下载VScode; 2、安装最新的插件&#xff08;C/C、PlatformIO IDE、python、Chinese&#xff09;&#xff1b; 3、在PlatformIO IDE中新建工程&#xff1a;Platforms——Projects——Create New Project——…