1.安装:npm install prerender-spa-plugin --save-dev
2.build/webpack.prod.conf.js中进行配置
new PrerenderSPAPlugin({
// 生成文件的路径,也可以与webpakc打包的一致。
staticDir: path.join(__dirname, '../dist'),
// 对应自己的路由文件,比如index有参数,就需要写成 /index/param1。
routes: ['/', '/home','/made','/news'],
// 这个很重要,如果没有配置这段,也不会进行预编译
renderer: new Renderer({
inject: {
foo: 'bar'
},
headless: false,
// 在 main.js 中 document.dispatchEvent(new Event('render-event')),两者的事件名称要对应上。
renderAfterDocumentEvent: 'render-event'
})
})
3.main.js中进行配置
new Vue({
el: '#app',
router,
store,
components: { App },
template: '<App/>',
mounted () {
document.dispatchEvent(new Event('render-event'))
}
})
4. route需采用history模式
5.prerender-spa-plugin可能下载的时候会出现问题(插件是需要依赖puppeteer的--所以需要翻墙)使用cnpm
手动添加
https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html或者https://npm.taobao.org/mirrors/chromium-browser-snapshots/下载对应的版本添加到对应目录
然后就可以打包成功了
6.npm install vue-meta-info --save-dev网页meta标签
在main.js配置
import metaInfo from 'vue-meta-info'
Vue.use(metaInfo)
.vue 页面里面添加tkd
export default {
metaInfo: {
title: '标题',
meta: [{
name: 'keywords',
content: '关键字'
},{
name: 'description',
content: '描述'
}]
}