天天看點

Nuxt.js項目實戰部署

Nuxt.js項目部署

采用nuxt.js開發,一般都是為了實作SSR。讓搜尋引擎更好的抓取網頁内容。

nuxt.js官方為我們提供了兩種部署的方式,一種是靜态資源部署,一種是ssr形式部署。

本文章總結ssr形式的部署完整流程

失敗的嘗試

在項目搭建好以後,狗尾草按很多網友說的,執行npm run build 然後将.nuxt檔案和static和nuxt.config.js檔案和package.json檔案複制壓縮上傳伺服器。然後執行npm install最後執行npm run start就可以平穩運作,最後開啟程序守護就好了

狗尾草按如上所說過程進行了一番嘗試後,發現在npm install完畢執行npm run start的時候,項目就會報錯

最簡單的檢視,package.json檔案中npm run start的配置啟動檔案為server/index.js

然鵝,如網友所說上傳檔案時,并沒有攜帶server.js。是以npm run start是找不到檔案的,必然啟動失敗,然後狗尾草發現在.nuxt檔案中是有打包好的server.js檔案的,于是修改package.json中的start啟動指令

 "start": "cross-env NODE_ENV=production node ./nuxt/server.js", 

然後發現還是報錯,缺少什麼子產品,這個報錯就比較惡心了。然後執行了好幾遍npm install以為是包确實了,但是卻不是。應該是設麼配置不對,我索性就放棄了,因為這過程中發現好多依賴檔案都沒有打包進.nuxt.js中。

正确的嘗試

  1. 将所有檔案除node_module檔案和其他的.git,.editorconfig等輔助類型的檔案忽略掉都上傳上去。
  2. 執行npm install安裝依賴包。
  3. 嘗試npm run build和npm run start看是否可以啟動

如果啟動失敗,應該就是項目代碼邏輯問題或者,包丢失的問題,檢查确認無誤後保證可以啟動。

  1. 配置nginx
server {
  listen 80;
  server_name  www.bgwhite.cn;
  location / {
    proxy_pass http://127.0.0.1:3000;
  }
  error_page 404 = http://www.bgwhite.cn/404.html;
}      

通路域名時,映射到nuxt啟動的端口即可

這裡需要注意的是,如果打包的是靜态資源,則需要通路的就是root xxx/xxxx/index.html

  1. pm2開啟程序守護

需要全局安裝一下pm2

npm install pm2

執行完畢後,具體的指令可檢視官網提示

pm2 start npm run start

或者配置具體的pm2啟動檔案

詳情可檢視官網的文檔,後續狗尾草也會出響應的pm2的配置和使用方法

開啟後,通過對應指令檢視伺服器上是否

 netstat -anp 

Nuxt.js項目實戰部署

可以看到狗尾草的nuxt服務是已經啟動。這個時候通路bgwhtie.cn可以看到是已經可以正産通路了。

而且網頁内容是可以看到的

Nuxt.js項目實戰部署
Nuxt.js項目實戰部署

至此nuxt.js部署ssr類型已經完成。靜态資源的部署的話和vue的部署其實是差不多的

采坑

nuxt開啟的預設端口是3000端口,如果伺服器上3000端口已經被占用了,怎麼辦呢?

修改nuxt的端口号兩種方式

  1. 修改nuxt.config.js
export default {  
    server: {    
        port: 8000,     // default: 3000
    host: '0.0.0.0' // default: localhost
  }  
}      
  1. 修改package.json
"config": {
    "nuxt": {
      "host": "0.0.0.0",
      "port": "3333"
    }
}      

至此,一套完整的部署到通路已經完成!

如果有小夥伴需要咨詢的可,qq留言咨詢,知無不言!

作者:狗尾草

出處:https://www.cnblogs.com/bgwhite/

-------------------------------------------

個性簽名:海到無邊天作岸,山登絕頂人為峰!

如果覺得這篇文章對你有小小的幫助的話,記得在右下角點個“推薦”哦,部落客在此感謝!