npm 和 npx 的差別


Posted by hoyi-23 on 2021-07-20

會使用 Node.js 的人對npm一定不陌生!

NPM 是什麼?

npm (node package manager) 是一個node套件的管理系統,npm 讓我們可以更快速簡單的下載、刪除、更新 Node 套件。


為甚麼會有 NPX 的出現?

node 套件非常的多,有些套件你可能就只是想要試試看套件的功能與指令,並不想直接下載套件。
但是使用 npm 是沒辦法做到。 所以 npx 就出現了。
npx 和 npm 一樣是套件管理工具(也是cli工具),都是讓我們可以更簡單的下載管理套件。


NPM 和 NPX 的比較

npm 永久安裝,npx 安裝後即移除

NPM

npm 自己本身並沒有在執行任何套件,若要使用npm來執行任何套件,需要先使用npm將套件加入至 package.json,再使用指令執行。
使用 npm 安裝套件 會直接安裝在你的專案和本機上。

指令:

npm install -g global-package //下載一個全域套件
global-pakage local-package //使用全域套件執行本地套件

npx

使用 npx 安裝,安裝的套件在執行完後就會刪掉。

指令:

npx global-pakage local-package

上面的例子中,npm 會先全局性的安裝 global-package ,這個 global-package (dependency) 也會一直存在本機 node_modules 下,如果使用 npx 命令, global-package 會被安裝在臨時安裝包上,等到項目初始化完成後就會刪除,不用全局性的安裝,避免被汙染。


什麼時候要用 NPX ?

像是那種一次性使用的,如 creat-react-app 它只有用在建立專案的最一開始,之後就不會用了! 或是像 npkill 套件, 這個套件是會幫我們清理無效的 node_modules ,在大專案下可以五到六個月跑一次,這時候使用 NPX 就再好不過啦!
不過最簡單的方式就是看官方文件啦! 官方用什麼 你就用什麼~

參考原文件: https://www.freecodecamp.org/news/npm-vs-npx-whats-the-difference/


#npm #npx







Related Posts

MTR04_0924

MTR04_0924

使用 Hugo 建立一個 Blog

使用 Hugo 建立一個 Blog

Day 4 - 陣列 filter,map,sort,reduce,from

Day 4 - 陣列 filter,map,sort,reduce,from


Comments