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

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.mzph.cn/news/107829.shtml

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

相关文章

网工实验笔记:MQC原理与配置

一、概述 MQC&#xff08;Modular QoS Command-Line Interface&#xff0c;模块化QoS命令行&#xff09;是指通过将具有某类共同特征的数据流划分为一类&#xff0c;并为同一类数据流提供相同的服务&#xff0c;也可以对不同类的数据流提供不同的服务。 MQC三要素 流分类&am…

流量代理——正向代理

流量代理 正向代理和反向代理 正向代理就是客户端和其他所有服务器&#xff08;重点&#xff1a;所有&#xff09;的代理者。 反向代理是客户端和所要代理的服务器之间的代理。 流量转发工具 需要放在拿到shell的服务器上可使用 lcx&#xff1a;端口流量转发&#xff0c;不具…

Spring Boot爬虫实战:模拟点击按钮下载表格详解

摘要&#xff1a;爬虫技术在数据获取和处理方面扮演着重要角色&#xff0c;本文将详细介绍如何使用Spring Boot实现爬虫功能&#xff0c;具体涉及模拟点击按钮并下载表格的实现细节&#xff0c;包括依赖导入、代码编写以及数据处理等方面&#xff0c;帮助读者快速入门并使用Spr…

Motorola IPMC761 使用边缘TPU加速神经网络

Motorola IPMC761 使用边缘TPU加速神经网络 人工智能(AI)和机器学习(ML)正在塑造和推进复杂的自动化技术解决方案。将这些功能集成到硬件中&#xff0c;解决方案可以识别图像中的对象&#xff0c;分析和检测模式中的异常或找到关键短语。这些功能对于包括但不限于自动驾驶汽车…

k8s查看当前命名空间下所有运行的 pod 对应的镜像

1&#xff0c;查看镜像 kubectl -n xxx get pods | grep Running | awk {print $1} | xargs -r -I {} kubectl -n xxx get pods {} -ojsonpath{.status.containerStatuses[0].image}{"\n"} | sort 2&#xff0c;去重查看 kubectl -n namespace get pods -o jsonp…

Maven 使用教程(三)

一、如何使用外部依赖项&#xff1f; 您可能已经注意到POM中的一个dependencies元素&#xff0c;我们一直在使用它作为示例。事实上&#xff0c;您一直在使用外部依赖项&#xff0c;但在这里我们将更详细地讨论它是如何工作的。有关更全面的介绍&#xff0c;请参阅我们的依赖机…

Elasticsearch系列组件:Logstash强大的日志管理和数据分析工具

Elasticsearch 是一个开源的、基于 Lucene 的分布式搜索和分析引擎&#xff0c;设计用于云计算环境中&#xff0c;能够实现实时的、可扩展的搜索、分析和探索全文和结构化数据。它具有高度的可扩展性&#xff0c;可以在短时间内搜索和分析大量数据。 Elasticsearch 不仅仅是一个…

JavaScript反爬虫技巧详细攻略

在互联网时代&#xff0c;网站采取了各种手段来防止被爬虫抓取数据&#xff0c;其中最常见的就是JavaScript反爬虫技巧。本文将揭示一些常用的JavaScript反爬虫技巧&#xff0c;并提供一些实际操作建议&#xff0c;帮助您保护自己的爬虫免受检测和封禁。 1、为什么网站使用Java…

python 机器视觉 车牌识别 - opencv 深度学习 机器学习 计算机竞赛

1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于python 机器视觉 的车牌识别系统 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;3分 &#x1f9ff; 更多资…

yolo配置(windows)

文章目录 一、下载Anaconda和pycharm1 、Anaconda官方下载地址&#xff1a;1.2 Anaconda 的安装 下载好之后双击打开可执行安装文件&#xff1a;1.3 进入到安装界面&#xff1a;1.4 这里建议两个都勾选&#xff08;第一个选项是将 Anaconda 添加到环境变量中&#xff0c;不勾选…

2023_Spark_实验十七:导入招聘大数据(项目)

一、爬虫爬取的招聘网站数据 二、在MySQL中创建空表 SET FOREIGN_KEY_CHECKS0;-- ---------------------------- -- Table structure for jd_jobs -- ---------------------------- DROP TABLE IF EXISTS jd_jobs; CREATE TABLE jd_jobs (job_name text,job_date text,minSale…

游戏缺少dll文件用什么修复?dll多种修复方法指南

在玩游戏时&#xff0c;有时候可能会遇到游戏缺少dll文件的问题。dll文件是动态链接库的缩写&#xff0c;它包含了一些函数和资源&#xff0c;游戏运行需要依赖这些文件。如果缺少了某个dll文件&#xff0c;游戏就可能无法正常运行。那么游戏缺少dll文件用什么修复&#xff1f;…

Win10 搭建FTP服务器

1. FTP 服务器用途 局域网中&#xff0c;资料共享&#xff0c;如果想实现外网访问可以设置路由端口映射&#xff08;不建议外网一旦打开风险增大&#xff09; 2. FTP服务器可以设置用户权限有什么&#xff1f; 用户只能读取 用户只能写入 用户读取写入 使用场景&#xff…

html进阶语法

html进阶 列表、表格、表单 目标&#xff1a;掌握嵌套关系标签的写法&#xff0c;使用列表标签布局网页 01-列表 作用&#xff1a;布局内容排列整齐的区域。 列表分类&#xff1a;无序列表、有序列表、定义列表。 无序列表 作用&#xff1a;布局排列整齐的不需要规定顺序的…

BAT027:删除当前目录指定文件夹以外的文件夹

引言&#xff1a;编写批处理程序&#xff0c;实现删除当前目录指定文件夹以外的文件夹。 一、新建Windows批处理文件 参考博客&#xff1a; CSDNhttps://mp.csdn.net/mp_blog/creation/editor/132137544 二、写入批处理代码 1.右键新建的批处理文件&#xff0c;点击【编辑】…

docker入门加实战—网络

docker入门加实战—网络 我们运行了一些容器&#xff0c;但是这些容器是否能够进行连通呢&#xff1f;那我们就来试一下。 我们查看一下MySQL容器的详细信息&#xff1a; 主要关注&#xff0c;Networks.bridge.IPAddress属性信息&#xff1a; docker inspect mysql # 或者过…

Leetcode 141:环形链表

给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&#xff08;…

for循环遍历的`form表单组件`rules规则校验失效问题——下拉框选择之后还是报红---亲测有效

问题: 大概的效果就是这种, for循环选择之后还是还是报红 看文章之前 : 先检查 model rules pops 有没有判定好 解决: 参考了他的 for循环遍历的form表单组件rules规则校验失效问题——输入内容后依然提示必填&#xff0c;亲测有效——基础积累_a-form-model的validat…

Java 获取请求真实IP

获取IP地址为 127.0.0.1, 或者内网地址 Nginx配置, 只有 proxy_pass 时只能获取到 127.0.0.1 location / {proxy_pass http://127.0.0.1:8080; }修改为 location / {#保留代理之前的host 包含客户端真实的域名和端口号proxy_set_header Host $host; #保留代理之前的真实客…

互联网Java工程师面试题·Java 总结篇·第四弹

目录 31、String s new String(“xyz”);创建了几个字符串对象&#xff1f; 32、接口是否可继承&#xff08;extends&#xff09;接口&#xff1f;抽象类是否可实现&#xff08;implements&#xff09;接口&#xff1f;抽象类是否可继承具体类&#xff08;concrete class&am…