簡體   English   中英

nodejs部署的最佳實踐 - 將node_modules直接移動到服務器或運行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 但是,在部署應用程序時,您不應該自己動手做。

PM2一樣使用此工具。

至於你對包中更改的關注,簡短的回答是package-lock.json

  • 移動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.

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