部署
pm2 啟動(dòng)步驟
npm ci --unsafe-perm
npm run build
pm2 start npm --name "web-pc" -- run start
win10 pm2 啟動(dòng)步驟
npm i -D node-cmd
在根目錄新建start.js
const cmd = require('node-cmd')
cmd.run('npm start')
啟動(dòng)
pm2 start start.js
使用nuxt.js的一些問題
1.使用vuex報(bào)如下錯(cuò)誤
[nuxt] store/index.js should export a method that returns a Vuex instance.
store/state.js should export a method that returns an object
解決方法,export的時(shí)候返回一個(gè)函數(shù)包住即可
// 默認(rèn)
export default new Vuex.Store({
getters,
state,
mutations,
strict: debug,
plugins: debug ? [createLogger()] : []
})
// 修改成這樣即可
export const createStore = () => {
return new Vuex.Store({
getters,
state,
mutations,
strict: debug,
plugins: debug ? [createLogger()] : []
})
}
2.window or document is not defined ?
解決方法,在使用到window or document 的地方加上一層if判斷
if (process.client) {
console.log('xxxx')
}
3.神奇的bug,子組件循環(huán)二維數(shù)組報(bào)錯(cuò) undefined
根據(jù)不斷調(diào)試最終發(fā)現(xiàn),父組件在mounted獲取接口數(shù)據(jù)緊接著傳遞給子組件去循環(huán)渲染,那么這個(gè)數(shù)據(jù)是拿到了,也循環(huán)出來了,但是循環(huán)第二層數(shù)組的時(shí)候就會(huì)莫名其妙的報(bào)
undefined
解決方法:將父組件獲取數(shù)據(jù)的地方換到 asyncData 即可解決
4.nuxt的DOM結(jié)構(gòu)加載要比樣式更快
5.nuxt-link跳轉(zhuǎn)頁面其實(shí)也跟單頁面一樣,頁面本身不會(huì)刷新只是生命周期會(huì)再走一遍
6.nuxt啟動(dòng)帶參數(shù)動(dòng)態(tài)更改api地址
因?yàn)榉?wù)端渲染的時(shí)候拿不到 document 和 window 因此如果想做到根據(jù)不同的域名變更不同的api地址最好的辦法就是啟動(dòng)的時(shí)候帶上當(dāng)前的api地址,然后在js里面去賦值
7.nuxt.config.js
nuxt.config.js的publicPath字段如果為 "/" 就會(huì)出現(xiàn)頁面打不開的情況
8.詭異的bug
在 asyncData里面 輸出 console.log(store) 會(huì)導(dǎo)致頁面打不開的問題