Nuxt.js部署應用的方式


Nuxt.js 提供了兩種發布部署應用的方式:服務端渲染應用部署 和 靜態應用部署。

靜態應用部署就不說了,主要說說服務端渲染應用部署。

官方部署方式

關於服務端渲染應用部署,官方文檔是這么寫的:

部署 Nuxt.js 服務端渲染的應用不能直接使用 nuxt 命令,而應該先進行編譯構建,然后再啟動 Nuxt 服務,可通過以下兩個命令來完成:

nuxt build
nuxt start

推薦的 package.json配置如下:

{
  "name": "my-app", "dependencies": { "nuxt": "latest" }, "scripts": { "dev": "nuxt", "build": "nuxt build", "start": "nuxt start" } } 

提示: 建議將 .nuxt 加入 .npmignore 和 .gitignore 文件中。

意思是說.nuxt不加入到版本控制,每次服務器從gitlab上拉代碼后先執行nuxt build生成.nuxt文件夾,然后再執行nuxt start來啟動服務。

每次在服務器上執行nuxt build,總是有如下報錯,並且jenkins會隨之掛掉。

error Command failed with signal "SIGKILL". 

看了一下服務器監控發現build的時候cpu和內存飆升,尤其是內存。。。

好吧,我買的是阿里最低配的ECS,升級配置是最后的選擇,在這之前只能另辟蹊徑。

既然服務器上build不了,那我們就本地build再上傳,在.gitignore里把.nuxt去掉、並把dist改為/dist,然后本地執行yarn build,成功之后再上傳到github上,檢查一下.nuxt是否有上傳上去。

之后在服務器上把代碼拉下來、安裝一下依賴,執行nuxt start就可以了。

這里還有個坑,就是為什么要把.gitignore里的dist改為/dist

/dist這個文件夾是執行nuxt generate后生成的,用來做靜態應用部署的,這部分就跟通常情況下的.nuxt一樣是不應該加入到版本控制里的,但由於nuxt build之后,在.nuxt里也會生成一個dist文件夾,我們希望gitignore的只有/dist而不是/.nuxt/dist,因此猜需要做出這里的修改。

 

我們使用pm2來部署nuxt。

pm2 start npm --name nuxt -- start

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM