Skip to content

npm v.s. npx

1️⃣ npm (Node Package Manager)

  • 主要用途:管理 Node.js 套件(安裝、更新、移除)。

  • 安裝方式

    bash
    npm install <package-name>
    • 安裝到本地專案:node_modules 資料夾
    • 安裝到全域:npm install -g <package-name>
  • 執行套件

    • 如果套件有 CLI,通常會透過 npx 或設定 scripts 執行。

    • 例如:

      bash
      npm install typescript
      npx tsc --version

2️⃣ npx (Node Package eXecute)

  • 主要用途:執行 Node.js 套件的 CLI 命令,而不一定要全域安裝。

  • 特性

    1. 可以直接執行專案中 node_modules/.bin 下的命令。
    2. 可以臨時下載並執行套件(不會留在專案或全域)。
  • 使用範例

    bash
    npx create-react-app my-app
    • 即使你沒全域安裝 create-react-appnpx 也會自動幫你下載並執行一次。
    bash
    npx cowsay "Hello World"
    • 會臨時下載並執行 cowsay

3️⃣ 總結差異

功能npmnpx
主要用途安裝套件執行套件 CLI
是否需要安裝必須先安裝(本地或全域)可以不安裝,臨時執行
安裝範圍本地 / 全域不改變本地或全域環境,可臨時執行
適用情境管理專案依賴立即使用 CLI 工具(一次性或專案內)

情境

情境推薦使用
專案依賴管理npm install
全域安裝工具(長期使用)npm install -g
一次性 CLI 工具npx
專案已安裝套件快速執行npx
避免全域污染 & 測試最新版本npx