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