深入淺出:npm常用命令詳解與實戰


theme: smartblue

動物 (11).jpg

在這里插入圖片描述

npm是什么

npm(Node Package Manager)是Node.js平臺的默認包管理器,它讓JavaScript開發者能夠輕松地共享、管理和使用彼此編寫的代碼模塊。npm不僅僅是一個安裝工具,它還是一個全面的生態系統,用于發布、發現、安裝和管理Node.js項目的依賴關系。

以下是npm的一些核心功能和特點:

  1. 包管理和依賴解決:npm幫助開發者管理項目中所依賴的各種模塊及其版本,自動解決依賴關系,避免版本沖突。
  2. 全球最大的包倉庫:npm擁有世界上最大的開源軟件包注冊表,截至某個時間點(例如2022年9月),注冊表中列出了超過210萬個軟件包,涵蓋從簡單的工具函數到完整的應用程序框架等廣泛類別。
  3. 命令行工具:npm提供了一個強大的命令行界面(CLI),通過這個界面,開發者可以安裝、更新、卸載包,管理項目的依賴關系,初始化新項目,發布自己的包到npm倉庫等。
  4. 版本控制:npm支持語義化版本控制,使得開發者能夠指定依賴包的確切版本或版本范圍,確保項目在不同環境中的一致性和穩定性。
  5. 腳本執行:package.json文件中的"scripts"字段允許定義自定義腳本,npm可以執行這些腳本,便于自動化構建、測試、部署等任務。
  6. 工作空間管理:對于包含多個相互依賴的包的大型項目,npm支持工作空間(workspaces)功能,便于統一管理和協調這些包的依賴和版本。
  7. 私有和企業解決方案:除了公共倉庫,npm還為企業和個人提供了私有倉庫選項,以便內部團隊之間共享和管理私有包。

npm常用命令

npm 提供了一系列豐富的命令行工具來幫助開發者管理項目和包依賴。以下是一些常用的 npm 命令及其簡要說明:

  1. npm install: 用于安裝項目依賴。不帶參數時,會安裝 package.json 文件中列出的所有依賴。可以通過提供包名來安裝特定的包。
  2. npm uninstall: 卸載指定的包。需要提供包名作為參數。
  3. npm update: 更新項目的依賴到最新版本。可以更新所有依賴或指定的單個包。
  4. npm init: 用于初始化一個新的 npm 項目,創建 package.json 文件。這個命令會引導用戶填寫項目信息,如名稱、版本、作者等。
  5. npm start: 默認的腳本命令,通常用于啟動開發服務器或運行項目。具體行為取決于 package.json 中 “scripts.start” 的定義。
  6. npm run: 執行 package.json 文件中 “scripts” 字段定義的腳本命令。后面跟腳本的名稱,如 npm run build。
  7. npm test: 運行項目的測試套件。同樣,實際執行的命令由 “scripts.test” 定義。
  8. npm publish: 發布當前項目到 npm 倉庫,使其可供其他人安裝。只有在項目有正確的權限和配置下才能使用。
  9. npm ls 或 npm list: 列出項目的依賴樹,展示已安裝的本地和全局包。
  10. npm cache clean: 清理 npm 的本地緩存。有助于解決因緩存問題導致的安裝錯誤。
  11. npm config: 管理 npm 的配置。可以查看、設置或刪除配置項,例如設置 registry 源。
  12. npm outdated: 檢查項目依賴是否為最新版本,顯示哪些包有更新可用。
  13. npm install --save: 安裝包并將它添加到 package.json 的 dependencies 列表中,用于生產環境依賴。
  14. 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 的腳本:

"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

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

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

相關文章

【YOLOv5/v7改進系列】替換損失函數為WIOU、CIOU、GIOU、SIOU、DIOU、EIOU、Focal C/G/S/D/EIOU等

一、導言 在目標檢測任務中,損失函數的主要作用是衡量模型預測的邊界框(bounding boxes)與真實邊界框之間的匹配程度,并指導模型學習如何更精確地定位和分類目標。損失函數通常由兩部分構成:分類損失(用于…

RabbitMQ入門教程(精細版二帶圖)

目錄 六 RabbitMQ工作模式 6.1Hello World簡單模式 6.1.1 什么是簡單模式 6.1.2 RabbitMQ管理界面操作 6.1.3 生產者代碼 6.1.4 消費者代碼 6.2 Work queues工作隊列模式 6.2.1 什么是工作隊列模式 6.2.2 RabbitMQ管理界面操作 6.2.3 生產者代碼 6.2.4 消費者代碼 …

清理測試數據用truncate還是delete

truncate和delete的區別,我相信大家都清楚。 truncate會清空表的全部數據,且自增主鍵會重置;而delete可以按條件刪除,且自增主鍵不會重置。 我們日常測試過程中經常要刪除掉測試數據,那么應該用truncate刪&#xff0c…

Java中繼承接口和實現接口的區別、接口和抽象類的區別、并理解關鍵字interface、implements

初學者容易把繼承接口和實現接口搞混,專門整理一下,順便簡單介紹一下interface、implements關鍵字。 繼承接口和實現接口的區別、接口的特點 繼承接口是說的只有接口才可以繼承接口,是接口與接口間的。實現接口是說的接口與類之間&#xff…

Eclipse導入工程提示“No projects are found to import”

如果發現導入工程的時候出現"No projects are found to import" 的提示,首先查看項目目錄中是否有隱藏文件.project,還有目錄結構也還要有一個隱藏文件.classpath, 如果沒有的解決辦法。 方法1:可以把其它項目的.proje…

面試題--SpirngCloud

SpringCloud 有哪些核心組件?(必會) ? Eureka: 注冊中心, 服務注冊和發現 ? Ribbon: 負載均衡, 實現服務調用的負載均衡 ? Hystrix: 熔斷器 ? Feign: 遠程調用 ? Zuul: 網關 ? Spring Cloud Config: 配置中心 (1)Eureka 提供服務注冊和發現, 是注冊中心. 有兩個組…

【最新】App Inventor 2 學習平臺和AI2伴侶使用

1、AppInventor2服務器: 官方服務器:http://ai2.appinventor.edu/ 官方備用服務器:http://code.appinventor.mit.edu/ 國內同步更新服務器:https://www.fun123.cn 國內訪問速度很快,很穩定,文檔是中文的…

Android11 系統/framework層禁止三方應用開機自啟動。

背景介紹:客戶給了定制的launcher,要求在設備上啟動他們的launcher,實現過程中出現的問題是 開機引導還沒走完,launcher就會自己彈出來打斷開機引導,按道理來說launcher是在開機引導結束后,由開機引導通過i…

偏微分方程筆記(駐定與非駐定問題)

橢圓方程可以看成拋物方程 t → ∞ t\rightarrow\infty t→∞的情況。 拋物: 雙曲:

什么是deep supervision?

Deep supervision 是深度學習中的一種技術,通常用于改進模型訓練的效果,尤其是在訓練深度神經網絡時。它通過在模型的多個中間層添加輔助監督信號(即額外的損失函數)來實現。這種方法有助于緩解梯度消失問題,加速收斂&…

DolphinDB 蟬聯 Gartner 中國實時數據管理代表廠商

報!DolphinDB 又上榜啦!!! 上月,全球知名信息技術研究公司 Gartner 發布了 Hype Cycle for Data, Analytics and AI in China, 2024 報告,以技術成熟度曲線(Hype Cycle)和優先級矩陣…

【NLP學習筆記】load_dataset加載數據

除了常見的load_dataset(<hf上的dataset名>)這種方式加載HF上的所有數據外&#xff0c;還有其他custom的選項。 加載HF上部分數據 from datasets import load_dataset c4_subset load_dataset("allenai/c4", data_files"en/c4-train.0000*-of-01024.js…

Spring Boot集成多數據源的最佳實踐

Spring Boot集成多數據源的最佳實踐 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 為什么需要多數據源&#xff1f; 在實際的應用開發中&#xff0c;有時候…

【C++ Primer Plus學習記錄】函數和C-風格字符串

將字符串作為參數時意味著傳遞的是地址&#xff0c;但可以使用const來禁止對字符串參數進行修改。 假設要將字符串作為參數傳遞給函數&#xff0c;則表示字符串的方式有三種&#xff1a; &#xff08;1&#xff09;char數組 &#xff08;2&#xff09;用引號括起來的字符串常…

航空數據管控系統-②項目分析與設計:任務1:需求分析-項目場景引入

任務描述 知識點&#xff1a;需求分析 重 點&#xff1a;原型設計工具&#xff0c;用例圖&#xff0c;流程圖繪制工具 難 點&#xff1a;功能點的梳理 內 容&#xff1a;完成本次實訓項目的需求分析 先共同討論處本項目的主要功能模塊&#xff0c;并確定每個模塊的負責…

通過卷防水上限,解鎖手機的新玩法?IP68之間亦有不同

當手機的日常防水已經成了基本功&#xff0c;防水能力的上限便成了新的賽道。 畢竟再謹慎的人&#xff0c;也可能會有手滑的時候。這個時候&#xff0c;一臺有著IP68級防水的手機&#xff0c;就能給你提供一份安心。 【IP68是標準上限&#xff0c;不是手機防水上限】 IP68是…

JAVA學習筆記2

一、加號使用 二、數據類型 bit&#xff1a;計算機中的最小存儲單位 byte(字節):計算機中基本存儲單元&#xff0c;1byte8bit 浮點數符號位指數位尾數位 浮點數默認為double類型

2024亞太杯中文賽B題全保姆教程

B題 洪水災害的數據分析與預測 問題 1. 請分析附件 train.csv 中的數據&#xff0c;分析并可視化上述 20 個指標中&#xff0c;哪 些指標與洪水的發生有著密切的關聯&#xff1f;哪些指標與洪水發生的相關性不大&#xff1f;并 分析可能的原因&#xff0c;然后針對洪水的提前預…

Teamviewer刪除可信任設備

目前基本上主流的遠程連接軟件都有限制&#xff0c;要么收費&#xff1b; Teamviewer可信任設備有限&#xff0c;超出限制就會提示錯誤&#xff0c;需要刪除多余的設備才能登陸賬號&#xff01; 需要登陸這個網站 Teamviewer Management console&#xff0c;才能修改&#xff…

基于 STM32 的智能睡眠呼吸監測系統設計

本設計的硬件構成&#xff1a; STM32F103C8T6單片機最小系統板&#xff08;包含3.3V穩壓電路時鐘晶振電路復位電路&#xff08;上電自復位&#xff0c;手動復位&#xff09;&#xff09;&#xff0c;心率傳感器、氣壓傳感器、液晶顯示、按鍵、蜂鳴器、LED燈、藍牙模塊組合而成…