我正在用Angular編寫一個nodejs應用程序作爲我的前端。 爲此,我將Git作爲我的代碼管理服務器。 對於客戶,我正在做縮小,它已準備好生產。NodeJS服務器端應用程序部署餘地
但我不確定,如何準備生產服務器端文件。 我們是否需要將所有Git文件夾複製到生產服務器? 讓我知道部署nodejs服務器應用程序的最佳方式。
我正在用Angular編寫一個nodejs應用程序作爲我的前端。 爲此,我將Git作爲我的代碼管理服務器。 對於客戶,我正在做縮小,它已準備好生產。NodeJS服務器端應用程序部署餘地
但我不確定,如何準備生產服務器端文件。 我們是否需要將所有Git文件夾複製到生產服務器? 讓我知道部署nodejs服務器應用程序的最佳方式。
這實際上取決於你(或你的公司)如何組織工作流程和項目規模。
有時候我也會使用GIT存儲庫,因爲這樣更新非常簡單:只需一個git pull
和(如果服務器文件被編輯)一個pm2 restart N
命令。
通過這種方式,您不必安裝整個開發堆棧以編譯(和縮小)捆綁包 - 我猜你可以在安裝了所有開發工具的本地機器上工作。
請記住,在安裝僅在開發模式下需要的軟件包時使用--dev
標誌,以便您可以儘可能保持生產服務器的苗條。
一個很好的做法,我發現是在最後加上包文件名裏面的一些隨機令牌(無論是JS和CSS),其獲得那麼注入最終的HTML靜態文件裏面,避免了刷新頁面循環。一旦你在你的開發機器上有了bundle文件,只要將它們上傳到服務器(ftp,git,rsync,sshfs mount,無論你喜歡什麼)和(如果服務器文件被編輯),重新啓動/重新加載節點進程我使用pm2這個,它真的很棒)。如果您只編輯客戶端文件,則不需要重新加載。
從這裏開始,有很多方法可以或多或少地完成這項工作,例如git管道......但取決於具體情況。
編輯:this約爲任務運行(一飲而盡VS咕嚕VS 香草NPM)的好文章,而可能是有點偏離主題,它分析了常見的部署過程中的某些方面
node_modules
,導致不同的機器有不同的設置/安裝情況,除非您使用npm install
,否則在運行之前無法確定是否有一個軟件包可以工作。Docker
,請使用它,將所有(包括node_modules
)文件預先捆綁到docker映像中,並且您在此處不需要pm2
,Docker
本身可以自動重新啓動。這是理想的方法。