Nuxt.js部署應用的方式

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

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

官方部署方式

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

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

nuxt build
nuxt start

推薦的 package.json配置以下:npm

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

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

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

每次在服務器上執行nuxt build,老是有以下報錯,而且jenkins會隨之掛掉。app

error Command failed with signal "SIGKILL". 

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

好吧,我買的是阿里最低配的ECS,升級配置是最後的選擇,在這以前只能另闢蹊徑。ui

既然服務器上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
相關文章
相關標籤/搜索