npm是什麼
npm(Node Package Manager)是Node.js平臺的預設包管理器,它讓JavaScript開發者能夠輕鬆地共享、管理和使用彼此編寫的程式碼模組。npm不僅僅是一個安裝工具,它還是一個全面的生態系統,用於釋出、發現、安裝和管理Node.js專案的依賴關係。
以下是npm的一些核心功能和特點:
包管理和依賴解決:npm幫助開發者管理專案中所依賴的各種模組及其版本,自動解決依賴關係,避免版本衝突。
全球最大的包倉庫:npm擁有世界上最大的開源軟體包登錄檔,截至某個時間點(例如2022年9月),登錄檔中列出了超過210萬個軟體包,涵蓋從簡單的工具函式到完整的應用程式框架等廣泛類別。
命令列工具:npm提供了一個強大的命令列介面(CLI),透過這個介面,開發者可以安裝、更新、解除安裝包,管理專案的依賴關係,初始化新專案,釋出自己的包到npm倉庫等。
版本控制:npm支援語義化版本控制,使得開發者能夠指定依賴包的確切版本或版本範圍,確保專案在不同環境中的一致性和穩定性。
指令碼執行:package.json檔案中的"scripts"欄位允許定義自定義指令碼,npm可以執行這些指令碼,便於自動化構建、測試、部署等任務。
工作空間管理:對於包含多個相互依賴的包的大型專案,npm支援工作空間(workspaces)功能,便於統一管理和協調這些包的依賴和版本。
私有和企業解決方案:除了公共倉庫,npm還為企業和個人提供了私有倉庫選項,以便內部團隊之間共享和管理私有包。
npm常用命令
npm 提供了一系列豐富的命令列工具來幫助開發者管理專案和包依賴。以下是一些常用的 npm 命令及其簡要說明:
npm install: 用於安裝專案依賴。不帶引數時,會安裝 package.json 檔案中列出的所有依賴。可以透過提供包名來安裝特定的包。
npm uninstall: 解除安裝指定的包。需要提供包名作為引數。
npm update: 更新專案的依賴到最新版本。可以更新所有依賴或指定的單個包。
npm init: 用於初始化一個新的 npm 專案,建立 package.json 檔案。這個命令會引導使用者填寫專案資訊,如名稱、版本、作者等。
npm start: 預設的指令碼命令,通常用於啟動開發伺服器或執行專案。具體行為取決於 package.json 中 "scripts.start" 的定義。
npm run: 執行 package.json 檔案中 "scripts" 欄位定義的指令碼命令。後面跟指令碼的名稱,如 npm run build。
npm test: 執行專案的測試套件。同樣,實際執行的命令由 "scripts.test" 定義。
npm publish: 釋出當前專案到 npm 倉庫,使其可供其他人安裝。只有在專案有正確的許可權和配置下才能使用。
npm ls 或 npm list: 列出專案的依賴樹,展示已安裝的本地和全域性包。
npm cache clean: 清理 npm 的本地快取。有助於解決因快取問題導致的安裝錯誤。
npm config: 管理 npm 的配置。可以檢視、設定或刪除配置項,例如設定 registry 源。
npm outdated: 檢查專案依賴是否為最新版本,顯示哪些包有更新可用。
npm install --save: 安裝包並將它新增到 package.json 的 dependencies 列表中,用於生產環境依賴。
npm install --save-dev: 類似於 --save,但將包新增到 devDependencies 列表中,用於開發環境依賴。
實戰應用
瞭解這些命令的使用方法對於日常開發至關重要。下面和大家分享一些 npm 常用命令的實際使用示例:
1. 初始化專案
當你開始一個新的 Node.js 專案時,首先需要建立一個 package.json 檔案來管理專案的後設資料和依賴。使用 npm init 命令可以做到這一點:
npm init
這個命令會提示你輸入專案的資訊(如名稱、版本、描述等),或者你可以透過 npm init --yes 快速生成預設的 package.json 檔案。
2. 安裝依賴
安裝一個名為 express 的包作為專案的依賴:
npm install express
這會安裝 express 並將其新增到 dependencies 列表中。如果是要安裝開發依賴(比如測試框架 mocha):
npm install mocha --save-dev
3. 執行指令碼
假設你的 package.json 檔案中定義了一個名為 start 的指令碼:
json"scripts": { "start": "node server.js" }
你可以透過以下命令來執行這個指令碼:
npm start
4. 更新依賴
更新所有依賴到最新版本(謹慎操作,可能引入不相容變更):
npm update
或者只更新特定的包,比如 express:
npm update express
5. 檢視依賴
檢視已安裝的全部依賴及其版本:
npm list
檢視是否有依賴包需要更新:
npm outdated
6. 釋出包
如果你開發了一個想要分享給社羣的包,可以使用 npm publish 命令釋出到 npm 倉庫。確保你已經在 npmjs.com 上註冊了賬號,並且當前目錄下有正確的 package.json 檔案。
npm publish
請注意,一旦釋出,就不能修改已釋出的版本,只能釋出新的版本號。
7. 解除安裝包
如果你不再需要某個包,可以使用 npm uninstall 命令來移除它。例如,解除安裝之前安裝的 mocha:
npm uninstall mocha
8. 檢視包資訊
想要了解某個包的詳細資訊,如版本、作者、許可證等,可以使用 npm view 命令:
npm view express
9. 搜尋包
如果你想找一個滿足特定需求的包,可以使用 npm search 命令進行搜尋。比如,尋找與 “websocket” 相關的包:
npm search websocket
10. 清理快取
有時候,由於快取問題可能會導致安裝失敗或異常,使用 npm cache clean --force(在 npm v6 中)或 npm cache clean --force(在 npm v7 及以後版本中)來清理快取:
npm cache clean --force
11. 設定映象源
在中國大陸地區,爲了加速 npm 包的下載速度,通常會設定 npm 映象源。可以使用 npm config 命令設定:
npm config set registry https://registry.npm.taobao.org
12. 檢視 npm 配置
如果你想檢視當前的 npm 配置資訊,可以使用:
npm config list