以前寫過一篇nuxt打包上線的文章,請看這裏:https://www.cnblogs.com/daisygogogo/p/11218809.htmlhtml
上一篇文章的部署流程有點很差的地方,就是它適用於只有惟一一個後臺接口路徑的部署,不適合須要根據多個環境切換後臺接口的狀況。前端
爲了解決須要根據不一樣環境(本地,測試,線上)切換請求的baseURL,咱們須要引入cross-env , 來實現環境變量的設置,根據環境變量來切換baseURL。node
爲了設置環境變量,咱們須要把打包的環節放到服務器,在服務器端進行打包。linux
首先咱們須要保證項目中已經安裝了cross-env,而且在nuxt.config.js中設置了env變量ios
env: { //環境變量 __ENV: process.env.__ENV }
在package.json中也作了命令配置git
"scripts": { "test": "jest", "dev": "cross-env process.env.__ENV=dev nuxt", "build": "nuxt build", "build-testing": "cross-env process.env.__ENV=testing nuxt build", "rc": "cross-env process.env.__ENV=rc pm2 start npm --watch --name 'web-pc' -- run start", "serve": "cross-env process.env.__ENV=serve pm2 start npm --watch --name 'web-pc' -- run start", "start": "nuxt start", "generate": "nuxt generate" }
在須要使用的地方就能夠這麼使用了,好比axios.jsgithub
let baseURL = ""; if(process.env.__ENV == 'rc'){ baseURL = 'http://rc.xxx:8011' }else if(process.env.__ENV == 'production'){ baseURL = 'https://www.xxx:4011' }else{ baseURL = 'http://test.xxx:8011' }
接下來就說說個人部署步驟,因爲直接在服務器打包,咱們須要安裝全部項目的依賴,爲了安裝依賴速度能快一點,我使用了淘寶鏡像源。web