npm 入門到進階 常用指令與版本規則教學

me
林彥成
2020-03-22 | 2 min.
文章目錄
  1. 1. npm 介紹
    1. 1.1. Package json 是什麼?
    2. 1.2. npm 安裝 node_module 的語法
    3. 1.3. node_module 版本號碼
    4. 1.4. npm 維護 node_module 的語法
  2. 2. 用 nvm 管理 node.js 版本

npm 介紹

什麼是 npm? npm 是 Node Package Manager 的縮寫,是 Node.js 預設的 node 套件管理平台,npm 本機端的相關工具在安裝 node.js 時也會一起安裝,另一套 npm 本機端工具則是 Facebook 推出的 Yarn,透過 npm 指令使用者可以更方便進行套件的管理動作 (安裝、升級或刪除)。

當撰寫網頁應用程式時,會使用到其他撰寫好的套件或模組,在不使用任何 build tool 之前,引入的方式不外乎是 CDN 將樣式或是腳本放在 HTML 中或是寫在 JavaScript 中動態的加入 <script src=""> 的 tag,當我們使用的套件或模組越來越多時,套件的版本或相容管理上就會大大增加複雜度,這時候就需要使用管理工具也就是 npm (Node Package Manager) 來進行協助。接下來這篇文章將提到:

  • Package json 是什麼
  • npm 安裝 node_module 的語法
  • node_module 版本號碼
  • npm 維護 node_module 的語法
  • 用 nvm 管理 node.js 版本

Package json 是什麼?

NPM 是一個 package manager,當專案什麼都沒有的時候,會需要我們輸入 npm init 來把專案初始化,填入相關資訊後,未來所有相關的配置檔都會存在 package.json

  • dependencies: 執行環境會需要
  • devDependencies: 開發或測試環境需要
  • optionalDependencies: 不一定在每個環境都能夠裝起來

安裝完後同時也會多出一個 package-lock.json 檔,主要是保存安裝的紀錄。

npm 安裝 node_module 的語法

用最常用的 lodash 舉例,列出幾種指令與結果說明

指令node_modulespackage.json 說明
npm install lodash;專案環境僅安裝最新版本
npm install lodash -g;全域環境僅安裝最新版本
npm install lodash@4.17.4專案環境僅安裝指定版本
npm install lodash --save;專案環境安裝並加入 dependencies
npm install lodash --save-dev;專案環境安裝並加入 devDependencies
npm install lodash -O;專案環境安裝並加入 optionalDependencies

透過以下指令可以針對 package.json 做部分安裝 ,熟悉這些指令在未來我們需要控制 Docker Image 的大小、縮短 CI/CD 的時間上會有很大的幫助。

指令說明
npm install --no-optional;不安裝 optionalDependencies
npm install --production執行環境,不安裝 devDependencies

node_module 版本號碼

node_module 版號通常會有三位數字 1.2.3 對應到 主版號.次版號.修訂號

版號遞增規則如下

  • 主版號:當你做了不相容的 API 修改
  • 次版號:當你做了向下相容的功能性新增
  • 修訂號:當你做了向下相容的問題修正

先行版號及版本編譯資訊可以加到「主版號.次版號.修訂號」的後面,作為延伸。

安裝特定版號的方法,可以去 npm 官方提供的計算機試用看看

  • 主版號 releases: * or x
  • 次版號 releases: 1 or 1.x or ^1.0.4
  • 修訂號 releases: 1.0 or 1.0.x or ~1.0.4

npm 維護 node_module 的語法

指令說明
npm audit查看是否 node_modules 有相關資安漏洞
npm audit fix自動修正相關漏洞
npm update更新可更新的 node_modules
npm prune清理 node_modules 中不需要的檔案

用 nvm 管理 node.js 版本

nvm 是一套管理 node.js 版本的工具,尤其在同時須開發不同版本 node.js 專案時很好用,windows 也有提供開源的版本可以使用。

  • nvm-windows
    • 解除安裝已安裝的 node
    • 清空相關資料夾 C:\Program Files\nodejs
    • 解除安裝已安裝的 npm
    • 清空相關資料夾 C:\Users\<user>\AppData\Roaming\npm
  • mac
    • 不要用 brew 安裝
指令說明
nvm install 8.17.0安裝特定版本
nvm use 8.17.0使用特定版本

喜歡這篇文章,請幫忙拍拍手喔 🤣

share