套件最適合全局安裝的時機是什麼?為什麼?
本地套件和全局套件的主要區別如下:
- 本地套件 安裝在執行
npm install <package-name>
的目錄中,並且放置在該目錄下的node_modules
文件夾中 - 全局套件 則放置在系統的一個統一場所(具體位置取決於你的配置),不論你在何處運行
npm install -g <package-name>
在你的代碼中,它們的引用方式是一樣的:
require('package-name')
那麼什麼時候應該選擇哪種安裝方式呢?
一般而言,所有套件都應該本地安裝。
這樣確保你的電腦中可以有數十個應用程序,每個應用程序都可以運行其所需的不同版本的每個套件。
如果更新一個全局套件,則會使所有專案都使用新的版本,在維護方面可能會帶來一些麻煩,因為某些套件可能與其他依賴關係不相容等等。
每個專案都有自己的本地版套件,即使看起來可能會浪費資源,但與可能產生的負面後果相比,這是微不足道的。
當一個套件提供一個可從 shell(CLI)執行的可執行命令且在多個專案中重複使用時,應該全局安裝該套件。
你也可以本地安裝可執行命令並使用 npx 執行它們,但有些套件最好還是全局安裝。
一些你可能已經全局安裝的流行套件示例包括:
npm
create-react-app
vue-cli
grunt-cli
mocha
react-native-cli
gatsby-cli
forever
nodemon
你可能已經在你的系統上全局安裝了一些套件。你可以在命令行中運行以下命令來查看它們:
npm list -g --depth 0