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 相关文章推荐
jquery tools 系列 scrollable学习
Sep 06 Javascript
Javascript Function对象扩展之延时执行函数
Jul 06 Javascript
json原理分析及实例介绍
Nov 29 Javascript
jQuery性能优化的38个建议
Mar 04 Javascript
JavaScript中的对象序列化介绍
Dec 30 Javascript
AngularJS基础知识笔记之过滤器
May 10 Javascript
JS+CSS实现下拉刷新/上拉加载插件
Mar 31 Javascript
自定义vue全局组件use使用、vuex的使用详解
Jun 14 Javascript
微信小程序下拉框功能的实例代码
Nov 06 Javascript
JavaScript函数的特性与应用实践深入详解
Dec 30 Javascript
微信小程序如何调用图片接口API并居中显示
Jun 29 Javascript
使用node.JS中的url模块解析URL信息
Feb 06 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个人网站架设连环讲(二)
2006/10/09 PHP
php+ajax实现图片文件上传功能实例
2014/06/17 PHP
php数组去除空值函数分享
2015/02/02 PHP
PHP实现通过get方式识别用户发送邮件的方法
2015/07/16 PHP
PHP生成word文档的三种实现方式
2016/11/14 PHP
总结PHP中初始化空数组的最佳方法
2019/02/13 PHP
PHP crypt()函数的用法讲解
2019/02/15 PHP
php中使用array_filter()函数过滤数组实例讲解
2021/03/03 PHP
JavaScript 异步调用框架 (Part 2 - 用例设计)
2009/08/03 Javascript
js中将字符串转换成json的三种方式
2011/01/12 Javascript
jquery offset函数应用实例
2012/11/14 Javascript
深入分析Cookie的安全性问题
2015/03/01 Javascript
Jquery 分页插件之Jquery Pagination
2015/08/25 Javascript
jquery+ajax实现省市区三级联动效果简单示例
2017/01/04 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
Eclipse + Python 的安装与配置流程
2013/03/05 Python
kaggle+mnist实现手写字体识别
2018/07/26 Python
Python实现的特征提取操作示例
2018/12/03 Python
python动态进度条的实现代码
2019/07/03 Python
深入解析神经网络从原理到实现
2019/07/26 Python
Pytorch实现神经网络的分类方式
2020/01/08 Python
Python中常用的高阶函数实例详解
2020/02/21 Python
python怎么调用自己的函数
2020/07/01 Python
Django前后端分离csrf token获取方式
2020/12/25 Python
英国著名的化妆品折扣网站:Allbeauty.com
2016/07/21 全球购物
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
三分钟演讲稿事例
2014/03/03 职场文书
会计电算化专业自荐信
2014/03/15 职场文书
学校对教师的评语
2014/04/28 职场文书
财务负责人任命书
2014/06/06 职场文书
python如何读取.mtx文件
2021/04/22 Python
Python如何导出导入所有依赖包详解
2021/06/08 Python
Redis Cluster集群动态扩容的实现
2021/07/15 Redis
spring boot中nativeQuery的用法
2021/07/26 Java/Android
WINDOWS下安装mysql 8.x 的方法图文教程
2022/04/19 MySQL
mysql中关键词exists的用法实例详解
2022/06/10 MySQL