掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
隨著前端項目中使用的依賴包越來越多,而其中一部分依賴包可能并未被項目所使用,手動查找這些依賴包既耗時又繁瑣。那么,有沒有工具能夠快速地幫助我們識別和清理項目中未使用的依賴包呢?下面就來介紹兩個用于檢查未使用依賴包的常用工具!

我們提供的服務(wù)有:網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、泉州ssl等。為上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的泉州網(wǎng)站制作公司
Depcheck 是一款用于分析項目中依賴關(guān)系的工具,它可以幫助我們找出以下問題:在 package.json 中,每個依賴包如何被使用、哪些依賴包沒有用處、哪些依賴包缺失。它是解決前端項目中依賴包清理問題的一個常用工具。
Depcheck 不僅可以識別 JavaScript 文件中的依賴關(guān)系,還支持以下語法:
可以在終端中運(yùn)行一下命令來安裝 depcheck(需要確保 node.js 的版本大于等于 10.0.0):
npm install -g depcheck
在安裝時,報了以下錯誤:
問題很明顯就是權(quán)限不夠(筆者的電腦是 M1 MacBook,這里以 mac 的操作為例),問了一下 chatgpt,給出的解答如下:
這里使用最簡單的第一種方案來解決,使用管理員權(quán)限來安裝:
sudo npm install -g depcheck
這樣就安裝成功了。接下來在前端項目的根目錄下執(zhí)行以下命令:
depcheck
可以看到以下沒有被引用的依賴包以及缺少依賴的文件:
當(dāng)然,這些依賴并不一定是真的沒用到,比如 less、less-loader、file-loader、svgo、TypeScript 等都在項目或者 webpack 等配置中用到了,depcheck 會忽略這些包。實際上,depcheck 會忽略這些配置文件中使用到的依賴項。
depcheck 的基本語法如下:
depcheck [directory] [arguments]
其中,directory 是項目根目錄(即 package.json 文件所在的目錄)。如果未指定,默認(rèn)為當(dāng)前目錄。所有參數(shù)都是可選的:
例如,想忽略某些包或文件夾,可以在命令后面添加相應(yīng)的選項:
depcheck --ignores="eslint" --ignore-dirs="dist"
除此之外,我們還可以在項目中增加 depcheck 的配置文件來配置要忽略解析的文件、要解析的文件、要忽略的包等,可以查看官方的文檔來進(jìn)行配置。
Github:https://github.com/depcheck/depcheck
npm-check 用于檢查項目中的依賴項,并提供有關(guān)過期,未使用和缺少依賴項的信息。npm-check 是基于 depcheck 實現(xiàn)的。它可以提示項目依賴項的狀態(tài),但它只會檢查并更新項目的直接依賴項,并不會檢查和更新嵌套的依賴項(即項目的依賴項的依賴項)
npm-check 具有以下特性:
可以在終端中通過以下命令來安裝 npm-check(需要確保 node.js 的版本大于等于 10.9.0):
npm install -g npm-check
安裝時同樣遇到了權(quán)限的問題,這里也使用管理員權(quán)限來安裝:
sudo npm install -g npm-check
接下來就可以執(zhí)行以下命令來檢測項目的 npm 包:
npm-check
執(zhí)行完之后,就可以看到類似的結(jié)果:
這里面會詳細(xì)介紹每個 npm 的情況,可以根據(jù)實際情況進(jìn)行分析。
npm-check 的基本語法如下:
npm-check
其中 path 是要檢查的路徑。默認(rèn)為當(dāng)前目錄??梢允褂?-g 檢查全局模塊。
除此之外,還有以下選項:
除此之外,npm-check 也像 depcheck 一樣,支持在項目根目錄添加配置文件來進(jìn)行配置,可以查看官方的文檔來進(jìn)行配置。
Github:https://github.com/dylang/npm-check

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流