vue-cli单页面预渲染seo-prerender-spa-plugin操作


Posted in Javascript onAugust 10, 2020

1 vue-cli-plugin-prerender-spa

使用方法:

vue add prerender-spa

在安装的过程中会需要安装一个chrome,网速不好可能导致不能下载,导致安装失败,可以取消chrome的安装,然后手动下载放在指定的目录下;

安装过程中选择需要预渲染的route

vue-cli单页面预渲染seo-prerender-spa-plugin操作

安装成功:

vue-cli单页面预渲染seo-prerender-spa-plugin操作

自动在main.js中加入:

vue-cli单页面预渲染seo-prerender-spa-plugin操作

2 使用prerender-spa-plugin插件

cnpm i prerender-spa-plugin --save-dev

vue-cli2.0 在build/webpack.prod.conf.js中:

const PrerenderSPAPlugin = require('prerender-spa-plugin')

const Renderer = PrerenderSPAPlugin.PuppeteerRenderer

注册插件:

在plugins中加入:

new PrerenderSPAPlugin({
  staticDir: path.join(__dirname, '../dist'),//打包文件的路径,或者自定义一个文件路径
  routes: ['/test', '/'],//需要预渲染的route路径
  renderer: new Renderer({
  inject: {
   foo: 'bar'
  },
  headless: true,
  renderAfterDocumentEvent: 'render-event'//需要在实例化Vue中监听的事件,名称要相对应
  })
 })

vue-cli3.0

在vue.config.js

const PrerenderSPAPlugin = require('prerender-spa-plugin');
const Renderer = PrerenderSPAPlugin.PuppeteerRenderer;
const path = require('path');
module.exports = {
 configureWebpack: config => {
 if (process.env.NODE_ENV !== 'production') return;
 return {
  plugins: [
  new PrerenderSPAPlugin({
   // 生成文件的路径,也可以与webpakc打包的一致。
   // 下面这句话非常重要!!!
   // 这个目录只能有一级,如果目录层次大于一级,在生成的时候不会有任何错误提示,在预渲染的时候只会卡着不动。
   staticDir: path.join(__dirname,'dist'),
   // 对应自己的路由文件,比如a有参数,就需要写成 /a/param1。
   routes: ['/', '/product','/about'],
   // 这个很重要,如果没有配置这段,也不会进行预编译
   renderer: new Renderer({
   inject: {
    foo: 'bar'
   },
   headless: false,
   // 在 main.js 中 document.dispatchEvent(new Event('render-event')),两者的事件名称要对应上。
   renderAfterDocumentEvent: 'render-event'
   })
  }),
  ],
 };
 }
}

在main.js中加入:

new Vue({
 el: '#app',
 router,
 components: { App },
 template: '<App/>',
 mounted() {
 // You'll need this for renderAfterDocumentEvent.
 document.dispatchEvent(new Event('render-event'))
 }
})

以上这篇vue-cli单页面预渲染seo-prerender-spa-plugin操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
兼容IE和Firefox的javascript获取iframe文档内容的函数
Aug 15 Javascript
Ajax搜索结果页面下方的分页按钮的生成
Apr 05 Javascript
js不完美解决click和dblclick事件冲突问题
Jul 16 Javascript
javascript中取前n天日期的两种方法分享
Jan 26 Javascript
判断复选框是否被选中的两种方法
Jun 04 Javascript
javascript面向对象之定义成员方法实例分析
Jan 13 Javascript
AngularJS基础 ng-mouseleave 指令详解
Aug 02 Javascript
jQuery自定义元素右键点击事件(实现案例)
Apr 28 jQuery
重新认识vue之事件阻止冒泡的实现
Aug 02 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
Sep 05 Javascript
浅谈webpack和webpack-cli模块源码分析
Jan 19 Javascript
基于canvas实现手写签名(vue)
May 21 Javascript
js实现计算器功能
Aug 10 #Javascript
js实现盒子拖拽动画效果
Aug 09 #Javascript
js实现盒子移动动画效果
Aug 09 #Javascript
js实现弹窗效果
Aug 09 #Javascript
js实现表格数据搜索
Aug 09 #Javascript
js实现微信聊天界面
Aug 09 #Javascript
js实现微信聊天效果
Aug 09 #Javascript
You might like
PHP获取MAC地址的具体实例
2013/12/13 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
js跨域和ajax 跨域问题的实现思路
2009/09/05 Javascript
jquery cookie的用法总结
2013/11/18 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
实例详解JSON取值(key是中文或者数字)方式
2017/08/24 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
JS实现的视频弹幕效果示例
2018/08/17 Javascript
cocos2dx+lua实现橡皮擦功能
2018/12/20 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
js实现弹窗效果
2020/08/09 Javascript
js实现点击选项置顶动画效果
2020/08/25 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
Vue页面渲染中key的应用实例教程
2021/01/12 Vue.js
python 3.6.5 安装配置方法图文教程
2018/09/18 Python
用Python解决x的n次方问题
2019/02/08 Python
wxpython实现按钮切换界面的方法
2019/11/19 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
python opencv进行图像拼接
2020/03/27 Python
jenkins+python自动化测试持续集成教程
2020/05/12 Python
django queryset相加和筛选教程
2020/05/18 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
CSS3.0实现霓虹灯按钮动画特效的示例代码
2021/01/12 HTML / CSS
详解三种方式实现平滑滚动页面到顶部的功能
2019/04/23 HTML / CSS
英国No.1文具和办公用品在线:Euroffice
2016/09/21 全球购物
加拿大最大的书店:Indigo
2017/01/01 全球购物
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
股权投资意向书
2014/04/01 职场文书
2015年端午节国旗下演讲稿
2015/03/19 职场文书