Asp.net

更改 node_modules 文件夾的位置

  • February 1, 2016

我目前正在嘗試將舊的 ASP.NET 網站項目遷移到 Visual Studio 2015。我想使用 NPM/Gulp 將 LESS 文件自動編譯為 CSS(此任務由 WebEssentials 在 VS 2013 中完成)。

package.json在項目中添加了一個文件來載入所需的組件。這將在 WebSite 項目的根目錄中創建一個node_modules文件夾,這就是我的問題開始的地方:

由於網站項目沒有項目文件,因此在項目根文件夾中找到的所有文件(和子目錄)都自動成為項目的一部分。由於內部目錄結構嵌套很深node_modules,路徑名太長會導致錯誤。

一個簡單的解決方法是hidden在文件夾上設置屬性node_modules(但這必須由每個開發人員手動完成)。

..\node_modules有沒有辦法告訴 NPM 將節點模組放入另一個目錄,例如解決方案文件所在的項目()上方的一層?

或者是否可以從 gulp-task (在載入項目時執行)在文件夾上設置隱藏屬性?

根據@Rik 的回答,我能夠解決問題:

package.json我沒有將and添加gulpfile.js到 WebSite 項目中,而是在解決方案級別添加它們(作為解決方案項)。這意味著,該node_modules文件夾現在位於與網站項目相同級別的解決方案目錄中。

唯一的其他變化是相應地修改路徑gulpfile.js

您可能想查看 npm 3.0+。它將模組安裝在最平坦的結構中。它應該減少模組目錄中的路徑長度。

從發行說明

平,平,平!

您的依賴項現在將最大程度地安裝。在可能的情況下,您的所有依賴項及其依賴項以及它們的依賴項都將安裝在您項目的 node_modules 文件夾中,沒有嵌套。當兩個(或更多)模組具有衝突的依賴關係時,您只會看到相互嵌套的模組。

  • #3697這有望消除大多數情況,即 Windows 使用者最終遇到的路徑對於 Explorer 和其他標準工具來說太長而

無法處理。

  • #6912 (#4761 #4037) 這也意味著您的安裝將從一開始就進行重複數據刪除。
  • #5827這種重複數據刪除甚至擴展到 git deps。
  • #6936 (#5698) 現在可以辨識各種命令的重複數據刪除。

這對其他命令的行為有一些影響:

  • npm uninstall 刪除您指定的模組的任何其他模組不需要的任何依賴項。以前,它

只會刪除碰巧安裝在其下的那些,

如果您曾經進行過重複數據刪除,則會導致遺留問題。

  • npm ls 現在向您顯示您的依賴關係樹圍繞需要什麼而不是這些模組在磁碟上的位置進行組織。
  • #6937除了重複數據刪除之外,npm dedupe 現在還會展平樹。

https://github.com/npm/npm/releases/tag/v3.0.0

要升級 Windows 安裝,請查看此軟體包 npm-windows-upgrade

引用自:https://stackoverflow.com/questions/33349324