套件最適合全局安裝的時機是什麼?為什麼?

本地套件和全局套件的主要區別如下:

  • 本地套件 安裝在執行 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