栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

预渲染 prerender-spa-plugin 尝试

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

预渲染 prerender-spa-plugin 尝试

背景:想给项目做一些优化,想尝试预渲染和SSR
这里说一下SSR
使用的技术栈是VUE
预渲染使用的是 prerender-spa-plugin 这个包

先说一下效果吧

这个感觉就是类似高级的骨架屏,不过他是一个真正的页面,只是没有数据,或者数据驱动渲染的一切。
使用这个插件 配置好几个预渲染的页面会 在build时提前讲这些页面渲染成浏览器可以直接打开的html文件。这样你在浏览器输入地址后,会直接得到这样一个页面,省去了渲染出页面的时间,因为在打包时这个页面就渲染完了,也就是我们提前预渲染了。

不好用的地方:

说一些不好用的地方,比如我们我们做的是类似管理后台的页面,无论你进入什么也都需要先登陆,那么这个效果就会打折扣,毕竟无论预渲染了什么页面 都会被重定向到登录页。

使用

1、安装 如果不行可能需要翻墙或者找一些镜像包试试

npm i prerender-spa-plugin -S

2、配置 vue.config.js

module.exports = {
	...,
	plugins: [
        staticDir: path.join(__dirname, 'dist'),
        routes:['/home'],
        renderer: new Renderer({
          inject: {
            foo: 'bar'
          },
          renderAfterDocumentEvent: 'render-event'
        })
	],
	// 另一种写法   
	// config.pludaasdfgins.push(
      // new PrerenderSPAPlugin({
        // staticDir: path.join(__dirname, 'dist'),
        // indexPath: path.join(__dirname, 'dist', 'index.html'),
        // routes:['/home'],
        // renderer: new Renderer({
          // inject: {
          //   foo: 'bar'
          // },
          // headless: true,
          // renderAfterDocumentEvent: 'render-event'
        // })
      // })
    // )

}

prerender-spa-plugin 还有很多参数 具体可以去官网看

3、打包

npm run build

打包完成后在dist 文件(打包后的文件)里面有一个home的文件夹,里面有一个index.html 文件,当你 访问http:// …/home 页面时 就会直接调用这个页面。也可以直接用浏览器打开这个页面

坑点

1、打开生成的home/index.html 文件 会发现 有可能你的css js 引用的路径不对,导致你生成页面没有样式,此时需要处理路径使其调用到正确的css js。

  • 方法1、可以手动打包完,改完路径,讲包扔给运维扔到服务器
  • 方法2、使用 npm i replace-in-file 这个包写方法 替换 路径 这种就是纯自动化部署了
    2、自动化部署时
  • 如果使用了上面的方法1那没什么问题 毕竟 包是在我们这处理好的。
  • 如果是方法2,自动话打包,那么jenkins在build时会有很多依赖,比如 prerender-spa-plugin 就使用了 chromium 安装时可能会失败这个需要注意,需要跟运维一起处理这些问题

小白 学习文档,有问题欢迎指正,互相学习。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/828046.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号