npm script 與 npx 的用途

解決多年疑惑。

為什麼用 npm run 或 npx 就可以執行?

(這裡以 jest 來舉例)

在執行 jest 指令的時候你可能會用以下幾種方式:

  1. 直接在 terminal 上執行 jest 指令
  2. 透過 package.json 的 srcipt 執行 npm run xxx
  3. 透過 npx jest xxx

如果是 2、3 的話都沒問題,但 1 的話你應該會直接得到錯誤:

error

主要是因為:指令的儲存位置

以這個例子來說,jest 是安裝在「專案底下」,而不是安裝在「全域」的電腦系統裡。

在 terminal 上執行 jest 指令時,它會到系統裡面去找有沒有 jest 這個指令?但因為它找不到,所以最後就會噴 error。

npm srciptnpx jest 指令可以正常執行,是因為它們都會自動到專案底下去找有沒有你輸入的這個指令,也就是 jest。最後有找到,所以順利執行。

簡單來說,一個是「從系統裡面找」,一個是從「專案裡面找」,只是這樣的差異而已。

ES6 的 let 與 const 第一次做 Unit test
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×