套件最適合全局安裝的時機是什麼?為什麼?
本地套件和全局套件的主要區別如下:
- 本地套件 安裝在執行 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