npm命令介紹(Node Package Manager)(Node包管理器)

文章目錄

  • npm命令全解析
    • 簡介
    • 基礎命令
      • 安裝npm(npm -v檢插版本)
      • 初始化項目(npm init)
      • 安裝依賴包(npm install xxx、npm i xxx)
      • 卸載依賴包(npm uninstall xxx 或 npm uni xxx、npm remove xxx)
      • 列出已安裝的包(npm list)
    • 依賴管理精解
      • 依賴類型區分(生產環境依賴dependencies、開發環境依賴devDependencies、宿主環境依賴peerDependencies、可選依賴optionalDependencies)
      • 版本控制策略
      • 依賴更新
        • 檢查過時的包(npm outdated)
        • 更新特定包(npm update lodash)
        • 更新所有包(npm update)
    • 腳本與自動化
      • 自定義腳本
      • 鉤子腳本(prebuild、postbuild編譯前后打印)
    • 發布與共享
      • 創建可發布包
        • 注冊npm賬號(npm adduser)
        • 發布包(npm publish)
        • 發布特定標簽版本(`npm publish --tag beta`)
      • 包版本管理
        • 補丁版本號+1 (1.0.0 -> 1.0.1)(npm version patch)
        • 次版本號+1 (1.0.0 -> 1.1.0)(npm version minor)
        • 主版本號+1 (1.0.0 -> 2.0.0)(npm version major)
    • 高級技巧
      • npm緩存操作
        • 清除緩存(`npm cache clean --force`)
        • 驗證緩存(npm cache verify)
      • 包信息查詢
        • 查看包信息(npm info lodash)
        • 搜索包(npm search keyword)
      • 安全審計
        • 檢查安全漏洞(npm audit)
        • 自動修復問題(npm audit fix)
        • 僅修復開發依賴(`npm audit fix --only=dev`)
      • 私有注冊表配置
        • 設置私有注冊表(npm config set registry https://registry.company.com/)
        • 恢復默認注冊表(npm config set registry https://registry.npmjs.org/)
      • 全局包管理
        • 全局安裝包(npm install -g package)
        • 全局卸載包(npm uninstall -g package)
        • 查看全局安裝位置(npm root -g)
    • 高效工作流
      • 交互式更新依賴
        • 交互式選擇更新的依賴(`npx npm-check -u`)
      • 并行運行腳本(npm-run-all)
      • 依賴可視化
        • 安裝依賴可視化工具(`npm install -g npmgraph`)
        • 生成依賴圖(`npmgraph <package-name>`)
      • 本地包開發與鏈接(npm link)
    • 定義
    • 命令
    • 最佳實踐
      • 鎖定依賴版本
        • 生成或更新package-lock.json(npm ci)
        • package-lock.json示例
      • 精簡安裝策略
        • 僅安裝生產依賴(`npm install --production`)
        • 使用ci命令精確還原依賴(npm ci)
      • 環境檢查與診斷(npm doctor)

npm命令全解析

簡介

npm (Node Package Manager) 是JavaScript運行時環境Node.js的默認包管理工具,為開發者提供了一種高效管理項目依賴的方式。作為世界上最大的軟件注冊表,npm包含了超過100萬個開源包,極大地促進了JavaScript生態系統的繁榮發展。

基礎命令

安裝npm(npm -v檢插版本)

npm隨Node.js一起安裝,可通過以下命令檢查版本:

npm -v

在這里插入圖片描述

初始化項目(npm init)

創建新項目時,首先需要初始化package.json文件:

npm init
# 或使用默認值快速創建
npm init -y

安裝依賴包(npm install xxx、npm i xxx)

# 安裝包并保存到dependencies
npm install lodash
# 簡寫形式
npm i lodash# 安裝指定版本
npm install lodash@4.17.21# 安裝開發依賴
npm install webpack --save-dev
# 或簡寫
npm i webpack -D

關于開發依賴,參考文章:npm開發依賴(僅在開發階段需要,生產環境不需要的包)(npm install xxx --save-dev、npm i xxx -D、npm install --production)

卸載依賴包(npm uninstall xxx 或 npm uni xxx、npm remove xxx)

# 卸載包并從dependencies中移除
npm uninstall lodash
# 簡寫形式
npm rm lodash
# 或
npm remove lodash# 卸載開發依賴
npm uninstall webpack --save-dev
# 或簡寫
npm rm webpack -D

列出已安裝的包(npm list)

# 列出所有已安裝的包
npm list# 只顯示頂層依賴
npm list --depth=0# 查看特定包
npm list lodash

依賴管理精解

依賴類型區分(生產環境依賴dependencies、開發環境依賴devDependencies、宿主環境依賴peerDependencies、可選依賴optionalDependencies)

{"dependencies": {"react": "^17.0.2"    // 生產環境依賴},"devDependencies": {"webpack": "^5.52.0"  // 開發環境依賴},"peerDependencies": {"react": ">=16.8.0"   // 宿主環境依賴},"optionalDependencies": {"fsevents": "^2.3.2"  // 可選依賴,安裝失敗不會導致npm install失敗}
}

版本控制策略

"lodash": "^4.17.21"  // ^表示兼容補丁和小版本更新
"express": "~4.17.1"  // ~表示兼容補丁版本更新
"moment": "4.17.1"    // 精確版本
"webpack": ">=5.0.0"  // 大于等于指定版本

依賴更新

檢查過時的包(npm outdated)
npm outdated
更新特定包(npm update lodash)
npm update lodash
更新所有包(npm update)
npm update

腳本與自動化

自定義腳本

package.json中定義常用操作:

{"scripts": {"start": "node server.js",            // 啟動應用"dev": "nodemon server.js",           // 開發模式"build": "webpack --mode production", // 構建生產版本"test": "jest",                       // 運行測試"lint": "eslint ."                    // 代碼檢查}
}

運行腳本:

npm run dev
# start、test、stop、restart可以省略run
npm test

鉤子腳本(prebuild、postbuild編譯前后打印)

{"scripts": {"prebuild": "echo '構建前執行'",  // build前自動執行"build": "webpack","postbuild": "echo '構建后執行'"  // build后自動執行}
}

發布與共享

創建可發布包

注冊npm賬號(npm adduser)
發布包(npm publish)
發布特定標簽版本(npm publish --tag beta

包版本管理

補丁版本號+1 (1.0.0 -> 1.0.1)(npm version patch)
次版本號+1 (1.0.0 -> 1.1.0)(npm version minor)
主版本號+1 (1.0.0 -> 2.0.0)(npm version major)

高級技巧

npm緩存操作

清除緩存(npm cache clean --force
驗證緩存(npm cache verify)

包信息查詢

查看包信息(npm info lodash)
npm info lodash
# 查看特定版本信息
npm info lodash versions
搜索包(npm search keyword)
npm search react-component

安全審計

檢查安全漏洞(npm audit)
自動修復問題(npm audit fix)
僅修復開發依賴(npm audit fix --only=dev

私有注冊表配置

設置私有注冊表(npm config set registry https://registry.company.com/)
恢復默認注冊表(npm config set registry https://registry.npmjs.org/)

全局包管理

全局安裝包(npm install -g package)
# 全局安裝包
npm install -g typescript
# 或簡寫
npm i -g typescript
全局卸載包(npm uninstall -g package)
npm uninstall -g typescript
查看全局安裝位置(npm root -g)
npm root -g

高效工作流

交互式更新依賴

交互式選擇更新的依賴(npx npm-check -u

并行運行腳本(npm-run-all)

使用npm-run-all包簡化多腳本運行:

{"scripts": {"lint:js": "eslint .",                      // JS代碼檢查"lint:css": "stylelint '**/*.css'",         // CSS代碼檢查"lint": "npm-run-all --parallel lint:*",    // 并行運行所有lint腳本"dev:server": "nodemon server.js",          // 后端開發服務"dev:client": "webpack serve",              // 前端開發服務"dev": "npm-run-all --parallel dev:*"       // 并行運行所有dev腳本}
}

依賴可視化

安裝依賴可視化工具(npm install -g npmgraph
生成依賴圖(npmgraph <package-name>

本地包開發與鏈接(npm link)

定義

npm link 是用于本地包開發和測試的強大工具,主要解決以下問題:

  1. 開發階段測試:當你開發自己的 npm 包時,可以通過 npm link 在不發布到 npm 倉庫的情況下,在其他項目中測試這個包

  2. 工作原理

    • 在包目錄執行 npm link 會在全局 node_modules 創建一個符號鏈接
    • 在使用該包的項目中執行 npm link package-name 創建指向全局鏈接的本地鏈接
  3. 實際使用場景

    • 同時開發多個相互依賴的包
    • 修改第三方庫并在本地測試
    • 團隊協作時共享尚未發布的包
  4. 優勢:對本地包的任何修改都會立即反映在使用它的項目中,無需重新安裝,大大提高了開發效率

解除鏈接可以使用 npm unlink package-namenpm uninstall package-name 命令。

命令

# 在本地包目錄中執行,創建全局鏈接
npm link# 在需要使用本地包的項目中執行
npm link package-name

最佳實踐

鎖定依賴版本

生成或更新package-lock.json(npm ci)
package-lock.json示例
{"name": "project-name","lockfileVersion": 2,"requires": true,"packages": {"node_modules/lodash": {"version": "4.17.21","resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz","integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="}}
}

精簡安裝策略

僅安裝生產依賴(npm install --production
使用ci命令精確還原依賴(npm ci)

環境檢查與診斷(npm doctor)

npm doctor

通過本文全面掌握npm命令,能夠顯著提升JavaScript項目開發效率和質量。從基礎命令到高級技巧,npm為現代JavaScript開發提供了強大而靈活的工具鏈支持。

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

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

相關文章

【Linux】Linux基礎概念

一些比較重要的使用Linux的前情提要。 部分經驗來源于網絡&#xff0c;若有侵權請聯系我刪除&#xff0c;主要是做筆記的時候忘記寫來源了&#xff0c;做完筆記很久才寫博客。 專欄目錄&#xff1a;記錄自己的嵌入式學習之路-CSDN博客 目錄 1 Shell命令參數 2 系統變量…

阿里開源Qwen3:大語言模型的新突破

一、模型概覽&#xff1a;豐富的模型家族 Qwen3 系列包含了 2 款混合專家&#xff08;MoE&#xff09;模型與 6 款密集&#xff08;Dense&#xff09;模型&#xff0c;參數量覆蓋范圍極廣&#xff0c;從 0.6B 一直延伸至 235B 。其中&#xff0c;旗艦模型 Qwen3 - 235B - A22B…

數字智慧方案5856丨智慧環保綜合解決方案(50頁PPT)(文末有下載方式)

資料解讀&#xff1a;智慧環保綜合解決方案 詳細資料請看本解讀文章的最后內容。 隨著城市化進程的加速和環境問題的日益嚴峻&#xff0c;智慧環保成為提升城市環境管理水平的重要手段。本文將對智慧環保綜合解決方案進行詳細解讀&#xff0c;探討其在實際應用中的需求、解決…

基于ssm的網盤管理系統(全套)

一、系統架構 前端&#xff1a;vue | element-ui 后端&#xff1a;spring | springmvc | mybatis 環境&#xff1a;jdk1.8 | mysql | maven | tomcat | nodejs 二、代碼及數據庫 三、功能介紹 01. 注冊 02. 登錄 03. 管理員-首頁 04. 管理員-個人中心 …

PostgreSQL 的 VACUUM 與 VACUUM FULL 詳解

PostgreSQL 的 VACUUM 與 VACUUM FULL 詳解 一、基本概念對比 特性VACUUMVACUUM FULL定義常規維護操作&#xff0c;清理死元組激進重組操作&#xff0c;完全重寫表數據鎖級別不阻塞讀寫(共享鎖)排他鎖(阻塞所有操作)空間回收只標記空間為可用&#xff0c;不返還OS空間返還操作…

復刻低成本機械臂 SO-ARM100 舵機配置篇(WSL)

視頻講解&#xff1a; 復刻低成本機械臂 SO-ARM100 舵機配置篇&#xff08;WSL&#xff09; 飛特舵機 組裝之前需要配置舵機的ID&#xff0c;如下的網址為舵機的資料&#xff0c;實際上用不到&#xff0c;但可以mark在這里 Software-深圳飛特模型有限公司 User Guide里面可以…

Tailwind CSS實戰技巧:從核心類到高效開發

使用 Kooboo平臺 訓練實戰技巧&#xff0c;無需配置安裝&#xff0c;直接引入CDN就可以在線練習了&#xff01;具體操作流程&#xff1a;進入Kooboo后&#xff0c;選擇創建空白站點 -> 站點開發 -> 控制面板 -> 頁面 ->新建普通頁面 -> 編寫代碼 一、核心布局類…

【LINUX操作系統】線程操作

了解了線程的基本原理之后&#xff0c;我們來學習線程在C語言官方庫中的寫法與用法。 1. 常見pthread接口及其背后邏輯 1.1 pthread_create 與線程有關的函數構成了?個完整的系列&#xff0c;絕?多數函數的名字都是以“pthread_”打頭的 ? 要使?這些函數庫&#xff0c;…

【AI面試準備】Azure DevOps沙箱實驗全流程詳解

介紹動手實驗&#xff1a;通過 Azure DevOps 沙箱環境實操&#xff0c;體驗從代碼提交到測試篩選的全流程。如何快速掌握&#xff0c;以及在實際工作中如何運用。 通過 Azure DevOps 沙箱環境進行動手實驗&#xff0c;是快速掌握 DevOps 全流程&#xff08;從代碼提交到測試篩選…

VulnHub-DC-2靶機

主機發現 sudo arp-scan -l 以sudo管理員權限掃描本地活動ip地址 Interface: eth0, type: EN10MB, MAC: 08:00:27:22:46:4f, IPv4: 192.168.252.230 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.252.6 4c:5f:70:74:3c:3b …

藏語英語中文機器翻譯入門實踐

&#x1f3af; 項目目標&#xff1a; 輸入藏文句子&#xff0c;自動翻譯成英文和中文&#xff08;或輸入中文&#xff0c;翻譯為英文和藏文&#xff09;。 &#x1f50d; 技術與原理簡介 機器翻譯&#xff08;Machine Translation, MT&#xff09;是人工智能中自然語言處理&a…

【阿里云大模型高級工程師ACP習題集】2.9 大模型應用生產實踐(上篇)

練習題 【單選題】在自然語言處理的法務咨詢場景中,以下哪種模型選擇最為合適? A. 通用大語言模型 B. 經過數學領域微調的模型 C. 面向法律領域訓練的模型 D. 視覺模型 【多選題】以下哪些屬于模型非功能性需求?( ) A. 模型對不同語言的支持能力 B. 模型的響應速度要求 C.…

WPF之ProgressBar控件詳解

文章目錄 1. ProgressBar控件簡介2. ProgressBar的基本屬性和用法2.1 基本屬性2.2 基本用法2.3 代碼中修改進度 3. 確定與不確定模式3.1 確定模式&#xff08;Determinate&#xff09;3.2 不確定模式&#xff08;Indeterminate&#xff09; 4. 在多線程環境中更新ProgressBar4.…

IntelliJ IDEA 保姆級安裝教程(附安裝包)

文章目錄 一、下載二、安裝三、啟動 一、下載 Ultimate 2021.1.1 - Windows x64 (exe) 二、安裝 三、啟動 首次安裝啟動 非首次安裝啟動

Performance API 性能上報

以下是關于 Performance API 性能上報的基本知識點總結: 一、性能監控核心指標體系 1. 關鍵性能指標(Web Vitals) 指標標準采集方式健康閾值LCP (最大內容繪制)測量加載性能PerformanceObserver≤2.5sFID (首次輸入延遲)測量交互響應PerformanceObserver≤100msCLS (累積布…

C語言-指針(一)

目錄 指針 內存 概念 指針變量 取地址操作符&#xff08;&&#xff09; 操作符“ * ” 指針變量的大小 注意 指針類型的意義 作用 void * 指針 const修飾指針變量 const放在*前 const放在*后 雙重const修飾 指針的運算 1.指針 - 整數 2.指針 - 指針 3.指…

華為云Astro大屏連接器創建操作實例:抽取物聯網iotda影子設備數據的連接器創建

目錄 樣圖(API連接器創建成功) 說明 操作場景(以Astro大屏抽取iotda影子參數為例) 實際操作步驟 新建連接器 設置基本信息。 接口鑒權方式,支持API鑒權、AK/SK、API Key和無身份驗證 無身份驗證 AK/SK認證(目前暫不能用) API Key認證(第三方使用) API鑒權認…

【硬件系統架構】哈佛架構

一、引言 在計算機科學的浩瀚宇宙中&#xff0c;計算機體系結構猶如星辰般繁多且各有獨特光芒。哈佛架構便是其中一顆耀眼的明星&#xff0c;它在眾多計算機體系結構中占據著獨特而重要的地位。從計算機技術的萌芽期一路走來&#xff0c;哈佛架構不斷發展演變&#xff0c;在不同…

華為eNSP:IS-IS認證

一、什么是IS-IS認證&#xff1f; 華為eNSP中的IS-IS認證 IS-IS認證是華為eNSP網絡中用于保障中間系統到中間系統&#xff08;IS-IS&#xff09;協議通信安全性的核心機制&#xff0c;通過身份驗證和數據完整性校驗防止非法路由信息注入或篡改。其實現方式與關鍵特性如下&…

如何創建并使用極狐GitLab 項目訪問令牌?

極狐GitLab 是 GitLab 在中國的發行版&#xff0c;關于中文參考文檔和資料有&#xff1a; 極狐GitLab 中文文檔極狐GitLab 中文論壇極狐GitLab 官網 項目訪問令牌 在極狐GitLab 16.1中引入添加了默認前綴。 項目訪問令牌類似于密碼&#xff0c;但你可以 限制訪問資源&#xf…