當咱們在 npm install
安裝項目依賴的時候,常常看到下圖提示的漏洞警告。node
咱們看上圖的提示說可使用 npm audit fix
來解決問題,那麼 npm audit
究竟是幹什麼的呢?爲何能夠經過 npm audit fix
能夠解決問題。讓咱們趕忙去 npm
的官網去查看一波。npm
官網介紹:json
npm audit
容許開發人員分析複雜的代碼,並查明特定的漏洞和缺陷。bash
npm audit fix
檢測項目依賴中的漏洞並自動安裝須要更新的有漏洞的依賴,而沒必要再本身進行跟蹤和修復。ui
固然還有其餘的一些命令:spa
# 只更新 package-lock.json, 不更新 node_modules
npm audit fix --package-lock-only
# 不更新開發依賴即 devDependencies
npm audit fix --only=prod
# 更新到最新的依賴, 而不是僅僅更新到兼容的依賴
npm audit fix --force
# 空運行一次審覈修復,瞭解修復的做用, 而且以 json 的格式輸出結果
npm audit fix --dry-run --json
複製代碼
還有一些命令請自行查看文檔。code
那麼咱們知道了它是經過分析 package-lock.json
文件,繼而掃描咱們的包還分析是否包含漏洞的,那麼有沒有辦法不讓他掃描呢?cdn
找到問題後,個人第一反應是能夠不能夠經過配置關閉這個分析功能呢(大佬第一反應多是怎麼解決)。blog
經過查看文檔咱們發現 npm audit
是能夠經過配置來進行關閉的。那麼咱們首先來看一下咱們的配置都有哪些,是經過哪一個配置來管理分析功能的。ci
# 執行下面的命令輸出咱們的 npm config
npm config ls -l
複製代碼
audit = true
這個屬性控制的。
咱們還能夠看到 audit-level = "low"
來控制漏洞的危險等級。
那麼咱們就能夠經過修改這些配置來到達關閉審計分析的功能。
# 將 audit 設置成 false 關閉分析功能
npm set audit false
# 設置分析漏洞危險等級,有4個選項: 'low(低)', 'moderate(中等)', 'high(高危)', 'critical(緊要)'
npm set audit-level high
複製代碼
好了,世界清靜了,不再會出現這些漏洞報告了~~~~
然而有的小夥伴就會擔憂,個人項目有了漏洞,真的被攻擊了(雖然我認爲概率很小)怎麼辦?
那就只能老老實實的執行 npm audit fix
去修復了。
有的小夥伴又會說我執行完仍是沒有修復,那是什麼緣由呢?
npm audit fix
後仍是沒有修復那是由於不是全部依賴均可以經過 npm
命令來更新解決漏洞。
好比有些包是 node-gyp
的第三方依賴包,這些不能經過 npm
命令來修改的,只能本身手動修復。
在 node_modules > node_gyp > package.json
中找到要更新的包,手動修改 package.json
中包的版本,修改到最新版本。而後運行 npm audit fix
便可。