簡體   English   中英

全局安裝的軟件包仍在本地安裝

[英]Globally installed packages are still being installed locally

我只在我的開發環境中使用node.js工具(即devDependencies,生產中沒有任何東西) - 例如grunt,uglify,sass,bower等。

我管理了很多項目,每個項目都使用完全相同的工具。 此外,我經常移動這些項目,包括壓縮它們,將一些項目放入Dropbox等。

通常,每個項目中node_modules文件夾的大小正在成為一個bug - 我的PC有時會在刪除它時凍結,在我意識到我忘記首先刪除node_modules等之前,檔案最終會大量存檔。

據我所知,我可以全局安裝節點包(使用npm install -g <package> ),如果正確的包全局可用,當我運行時,npm不需要在我的每個項目的npm_modules文件夾中再次安裝它npm install

我理解正確嗎?

如果是這樣,這對我來說似乎不起作用:

  • 我跑了npm install -g bower
  • cd到項目文件夾和npm install
  • node_modules / bower文件夾創建了它的所有榮耀

在我的package.json中,我的bower依賴關系如下所示:

"devDependencies": {
  "bower": "^1.7.7",

我嘗試將其設置為“*”並重復上述步驟,以防npm嘗試確保只有某個版本可用,但我得到了相同的結果。

我理解管理依賴關系的重點是不同版本的包可以在不同的項目中使用; 在我的情況下,因為我只使用devDependencies,我很高興使用相同/最新版本的所有內容,因為我知道它一切都可以正常部署。

你可能會說,我對node.js很新。 我是否正確理解了這是如何工作的? 或者我是以錯誤的方式去做的?

如果它是相關的,我在Windows 10上並使用Gi​​t Bash(它似乎基於MinGW)。

在我看來,你正在以正確的方式做事。 我傾向於回避全球安裝npm模塊。 如您所述,這使您的項目非常便攜。 所有依賴項都在本地目錄中捕獲。 你可以壓縮整個東西,把它放在Dropbox或任何地方,你知道它擁有一切。

我很驚訝您的項目目錄包括node_modules是如此之大,以至於您注意到性能問題。 如果確實如此,我會仔細檢查你的package.json中沒有任何未使用的依賴項。 如果您擔心項目中安裝了不在package.json(安裝ad hoc)中的deps,則可以刪除node_modules目錄並重新運行npm install 您總是希望package.json成為項目代表的准確列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM