![](/img/trans.png)
[英]not install node_modules when I type this command "npm install"
[英]Best practice for nodejs deployment - Directly moving node_modules to server or run npm install command
部署nodejs應用程序的最佳實踐是什么?
1)直接將node_modules文件夾從開發服務器移動到生產服務器,以便也可以在生產中創建相同的本地環境。 無論遠程對任何節點模塊所做的更改都不會影響我們的代碼。
2)在package.json的幫助下在生產服務器中運行npm install
命令。 問題在於,節點模塊中的任何更改都會影響我們的代碼。 我遇到了環回模塊的一些問題( 問題鏈接 )。
誰能幫我?
在生產服務器中運行npm install
無法在某些情況下完成(缺少編譯工具,限制互聯網訪問等等),如果你必須在多台機器上部署同一個項目,可能會浪費cpu,內存和帶寬。
您應該在具有相同庫和生產服務器節點版本的計算機上運行npm install --production
,壓縮node_modules並在生產服務器上部署。 您還應該保留package-lock.json
文件以精確定位版本。
此方法還允許您使用開發包構建/測試代碼,然后在實際部署之前修剪node_modules。
我的猜測是,通過提出這個問題,你並不真正理解package.json
文件的重點。
package.json文件明確用於此目的(並上傳到npm注冊表),傳輸節點包而不必隨之傳輸大量的依賴項。
我甚至會說, 根本不應該手動移動node_modules
目錄。
絕對在生產服務器上使用npm install
命令,這是正確的方法。 要避免與本地環境相比對node_modules
目錄進行任何更改,請使用package lock
文件。 這應該有助於最小化node_modules
源代碼的node_modules
。
我的意思是說這不是壞事
npm install
可能會破壞版本依賴性。 npm ci
。 它使用package_lock文件並安裝所需的依賴項而不修改版本。 npm ci意味着持續集成項目。 鏈接 我是一名ASP.NET核心開發人員,但我最近開始使用Node.js應用程序。 對我來說,這是你提到的將node_modules
文件夾移動到生產的挑戰之一。 我沒有將整個文件夾移動到生產或只在生產服務器上運行npm install
命令,而是想出了一種方法,將我的Node.js應用程序使用Webpack
捆綁成一個/多個捆綁包,我只是擺脫了混亂管理node_modules
文件夾。 它只獲取在我的應用程序中使用/引用的所需node_modules包,並將其與我的應用程序代碼捆綁在一個文件中,並將該單個文件部署到生產中,而無需移動整個node_modules文件夾。
我發現這種方法在我的情況下很有用,但如果這不是關於應用程序性能的正確方法或者這種方法的任何缺點,請建議我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.