只會npm install?這5個隱藏技巧讓你效率翻倍!

原文鏈接:https://mp.weixin.qq.com/s/nijxVWj-E5U08DX2fl3vgg

最近有個剛學前端的小伙伴問我:“為什么我的node_modules這么大?為什么別人裝依賴那么快?npx到底是啥玩意兒?”

相信不少人都跟他一樣,對npm的認知還停留在“npm install”階段。今天我就來分享幾個超級實用的npm技巧,幫你擺脫依賴安裝的噩夢!

一、package.json里的秘密

先來說說package.json這個文件,它可不僅僅是項目的身份證。

dependencies和devDependencies到底啥區別?

簡單說就是:dependencies是項目運行時必須的依賴,比如react、vue這些。devDependencies是開發時才需要的,比如eslint、webpack這些打包工具。

看個例子就明白了:

{"dependencies": {"react": "^17.0.2",  // 項目運行必須"axios": "^0.21.1"   // 項目運行必須},"devDependencies": {"eslint": "^7.18.0",  // 只有開發時需要"webpack": "^5.11.0"  // 只有開發時需要}
}

版本號前的^和~有啥講究?

這個特別重要!~表示允許小版本更新,^允許次版本更新。

舉個例子:

  • ~1.2.3:可以更新到1.2.x,但不能到1.3.0
  • ^1.2.3:可以更新到1.x.x,但不能到2.0.0
{"dependencies": {"lodash": "~4.17.0",  // 只會更新到4.17.x"moment": "^2.29.0"   // 可以更新到2.x.x}
}

二、npm install的隱藏技巧

你是不是還在傻傻地等著npm install慢慢下載?試試這兩個技巧:

1. 使用npm ci替代npm install

在CI/CD環境或者想要確保依賴一致時,用npm ci比npm install更靠譜:

npm ci  # 完全按照package-lock.json安裝,速度更快更穩定

2. 離線優先模式

如果你之前安裝過相同的依賴,可以這樣加速:

npm install --prefer-offline  # 優先使用本地緩存

三、npx:不用全局安裝也能運行命令

這是我最近發現的神器!以前要全局安裝腳手架工具,現在用npx直接運行:

# 以前需要先全局安裝
npm install -g create-react-app
create-react-app my-app# 現在直接用npx
npx create-react-app my-app  # 自動下載運行,用完即刪

再舉個例子,想用webpack但不想全局安裝:

npx webpack --config webpack.config.js  # 臨時使用webpack

四、安全漏洞檢查

現在網絡安全這么重要,npm也提供了安全檢查功能:

npm audit  # 檢查項目依賴的安全漏洞
npm audit fix  # 自動修復可修復的漏洞

如果發現嚴重漏洞,最好立即處理。我曾經有個項目就因為依賴的舊版本庫有漏洞,差點出大事!

五、其他實用小技巧

清理緩存
有時候安裝出問題,可能是緩存作祟:

npm cache clean --force  # 清理npm緩存

查看包信息
想了解某個包的信息?不用去官網:

npm view react  # 查看react包的詳細信息

快速初始化項目
不想一步步回答npm init的問題?

npm init -y  # 一鍵生成默認package.json

實際工作場景示例

假設你要創建一個新的React項目并檢查安全:

# 1. 創建項目目錄
mkdir my-react-app
cd my-react-app# 2. 快速初始化
npm init -y# 3. 安裝React(生產依賴)
npm install react react-dom# 4. 安裝開發工具(開發依賴)
npm install -D webpack webpack-cli# 5. 檢查安全漏洞
npm audit# 6. 如果有漏洞就修復
npm audit fix

寫在最后

用了這些技巧后,我們團隊的依賴安裝時間平均減少了40%,再也不用對著node_modules發呆了。

其實工具用的好,真的能省下不少時間。這些技巧都是我踩了無數坑后總結出來的,希望對你也有幫助!

你還有什么好用的npm技巧?歡迎在評論區分享交流~

PS:如果你發現某個依賴安裝特別慢,可以試試切換npm源到淘寶鏡像,速度會快很多哦!

npm config set registry https://registry.npmmirror.com/

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/98298.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/98298.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/98298.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

(二).net面試(static)

文章目錄項目地址一、基礎501.1 new keyword1.2 static class vs. static method1. static class2. static method3. static constructor 靜態構造函數4. 靜態成員的生命周期1.3 LinQ1.what is LinQ2. List<T>、IEnumerable<T>、IQueryable<T>3. 在數據庫里用…

docker,本地目錄掛載

理解Docker本地目錄掛載的基本概念Docker本地目錄掛載允許容器與宿主機共享文件或目錄&#xff0c;實現數據持久化和實時交互。掛載方式分為bind mount和volume兩種&#xff0c;前者直接映射宿主機路徑&#xff0c;后者由Docker管理存儲路徑。本地目錄掛載的核心方法bind mount…

IO多路復用相關知識

select、poll、epoll 在傳入的性能差異是不是體現在&#xff0c;當有新的連接過來&#xff0c;此時需要將新的fd傳入到內核中&#xff0c;但是poll/select需要出入整個數組&#xff0c;而epoll方式只需要出入單個fd&#xff1f; 1. select/poll 的情況它們沒有內核中“長期保存…

【CF】Day139——雜題 (絕對值變換 | 異或 + 二分 | 隨機數據 + 圖論)

B. Meeting on the Line題目&#xff1a;思路&#xff1a;數形結合首先考慮如果沒有 t 的影響該怎么寫顯然我們就是讓最大時間最小化&#xff0c;那么顯然選擇最左端點和最右端點的中間值即可&#xff0c;即 (mi mx) / 2&#xff0c;那么現在有了 t 該怎么辦我們不妨考慮拆開絕…

在 Ubuntu 上安裝和配置 PostgreSQL 實錄

一、查看ubuntu版本 lsb_release -a postgresq盡量安裝在新的穩定版本的ubuntu上 二、安裝postgresql 2.1 直接安裝 sudo apt install postgresql 結果如下 2.2 使用PPA源安裝 Ubuntu官方源提供了PostgreSQL的PPA(Personal Package Archive),通過PPA源安裝可以確保獲取…

WebGIS三維可視化 + 數據驅動:智慧煤倉監控系統如何破解煤炭倉儲行業痛點

目錄 一、項目背景&#xff1a;煤炭倉儲管理的痛點與轉型需求 二、建設意義&#xff1a;從 “被動管理” 到 “主動掌控” 的價值躍遷 三、項目核心&#xff1a;技術架構與核心目標的深度融合 四、數據與技術&#xff1a;系統穩定運行的 “雙支柱” &#xff08;一&#x…

使用 Spring Security 實現 OAuth2:一步一步的操作指南

前言 OAuth 是一種授權框架&#xff0c;用于創建權限策略&#xff0c;并允許應用程序對用戶在 HTTP 服務&#xff08;如 GitHub 和 Google&#xff09;上的賬戶進行有限訪問。它的工作原理是允許用戶授權第三方應用訪問他們的數據&#xff0c;而無需分享他們的憑證。本文將指導…

VMware共享文件夾設置

啟用共享文件夾 編輯虛擬機設置-選項-共享文件夾&#xff0c;上面的選項選擇啟用下面點擊添加一個路徑&#xff0c;跟著向導走 設置共享文件夾在主機的路徑&#xff0c;和文件夾名稱添加完成后可以點擊這個共享文件夾條目&#xff0c;查看屬性虛擬機里安裝vm-tools sudo apt up…

華為云昇騰云服務

華為云&#xff0c;一切皆服務共建智能世界云底座面向未來的智能世界&#xff0c;數字化是企業發展的必由之路。數字化成功的關鍵是以云原生的思維踐行云原生&#xff0c;全數字化、全云化、AI驅動&#xff0c;一切皆服務。華為云將持續創新&#xff0c;攜手客戶、合作伙伴和開…

Axum 最佳實踐:如何構建優雅的 Rust 錯誤處理系統?(三)

引言 作為開發者&#xff0c;我們都經歷過這樣的場景&#xff1a;項目上線后&#xff0c;你打開日志監控&#xff0c;鋪天蓋地的 500 Internal Server Error 撲面而來。這些錯誤像個黑洞&#xff0c;吞噬著你的調試時間&#xff0c;你甚至不知道它們是從數據庫查詢失敗&#x…

MySQL高可用方案解析:從復制到云原生

MySQL 的高可用 (High Availability, HA) 方案旨在確保數據庫服務在硬件故障、軟件崩潰、網絡中斷或計劃維護時仍能持續可用&#xff0c;最小化停機時間&#xff08;通常目標為 99.9% 至 99.999% 可用性&#xff09;。以下是 MySQL 領域成熟且廣泛應用的幾種主流高可用方案&…

騰訊云語音接口實現會議系統

1.前言 在現代企業協作環境中&#xff0c;高效的會議管理是提升團隊生產力的關鍵。本文將深入解析一個完整的會議管理系統&#xff0c;涵蓋從會議創建到總結生成的完整生命周期。該系統構建一個基于AI技術的智能會議系統&#xff0c;實現會議全流程的智能化管理&#xff0c;包括…

【LeetCode 每日一題】1277. 統計全為 1 的正方形子矩陣

Problem: 1277. 統計全為 1 的正方形子矩陣 文章目錄整體思路完整代碼時空復雜度時間復雜度&#xff1a;O(m * n)空間復雜度&#xff1a;O(m * n)整體思路 這段代碼旨在解決一個經典的二維矩陣問題&#xff1a;統計全為 1 的正方形子矩陣個數 (Count Square Submatrices with …

【論文閱讀】MedResearcher-R1: 基于知識引導軌跡合成框架的專家級醫學深度研究員

論文鏈接&#xff1a;https://arxiv.org/pdf/2508.14880 【導讀】當通用大模型還在“背題庫”時&#xff0c;螞蟻集團聯合哈工大推出的 MedResearcher-R1 已把“臨床查房”搬進訓練場&#xff01;這篇 2025 年 9 月發布的論文&#xff0c;首次讓開源 32B 模型在醫學深度研究基準…

基于大語言模型的事件響應優化方案探索

程序員的技術管理推薦閱讀 當愿望遇上能力鴻溝&#xff1a;一位技術管理者眼中的團隊激勵思考 從“激勵”到“保健”&#xff1a;80后與90后程序員&#xff0c;到底想要什么&#xff1f; 從“激勵”到“保健”&#xff1a;80后與90后程序員&#xff0c;到底想要什么&#xff1f…

數字化浪潮下,傳統加工廠如何智能化轉型?

在制造業向高端化、服務化升級的今天&#xff0c;傳統加工廠正面臨前所未有的挑戰。訂單碎片化、人力成本攀升、設備OEE&#xff08;綜合效率&#xff09;長期低于50%、質量波動難以追溯……這些痛點不僅壓縮著企業利潤空間&#xff0c;更讓其在應對市場需求變化時顯得遲緩。當…

謂語動詞選擇指南

文章目錄謂語動詞的重要性謂語動詞類別一. 助動詞1. be&#xff08;am, is, are, was, were, been, being&#xff09;表示 存在、狀態、身份、特征。2. have&#xff08;have, has, had&#xff09;表示 擁有、經歷 或 完成時態的助動詞。3. do&#xff08;do, does, did&…

代碼隨想錄學習摘抄day7(二叉樹11-21)

一個樸實無華的目錄題型226.翻轉二叉樹思路&#xff1a;把每一個節點的左右孩子交換一下101. 對稱二叉樹思路&#xff1a;使用隊列來比較兩個樹&#xff08;根節點的左右子樹&#xff09;是否相互翻轉222.完全二叉樹的節點個數思路&#xff1a;本題直接就是求有多少個節點&…

Python+DRVT 從外部調用 Revit:批量創建樓板

今天繼續批量創建常用的基礎元素&#xff1a;樓板。這次以簡單的輪廓為矩形的樓板為例。讓我們來看一看如何讓Revit自動干活&#xff1a; from typing import List import math # drvt_pybind 支持多會話、多文檔&#xff0c;先從簡單的單會話、單文檔開始 # MyContext是在Pyt…

猿輔導數據分析面試題及參考答案

給定用戶成績表,編寫SQL查詢排名靠前的用戶(例如前10名),并說明rank()和dense_rank()的區別。 要查詢成績表中排名靠前的用戶(如前10名),需先明確排名依據(通常為成績降序),再通過排序和限制結果行數實現。假設用戶成績表名為user_scores,包含user_id(用戶ID)和s…