vue/vue-cli+express手把教你搭建SSR

2020-06-14 06:27:40易采站长站整理

vue-cli项目搭建

在做准备工作的时候简单讲述了vue中使用ssr的运行思路,里面提及了一个很重要的webpack,因此这里需要借助vue-cli脚手架,直接更改原有的webpack就可以了,这样会方便很多。

这里建议大家返回顶部再次看一下vue服务端渲染的流程,在介绍中的client-bundle和server-bundle,,所以需要构建两个配置,分别是服务端配置和客户端的配置。

如想要实现服务端渲染需要对vue-cli中个js文件中的配置进行修改。以下只展示更改部分的代码,不展示全部。

文件分别是:

webpack.server.conf.js – 服务端webpack配置
dev-server.js – 获取服务端bundle
server.js – 创建后端服务
webpack.dev.conf.js – 客户端的bundle
webpack.base.conf – 修改入口文件

客户端配置

客户端生成一份客户端构建清单,记录客户端的资源,最终会将客户端构建清单中记录的文件,注入到执行的执行的模板中,这个清单与服务端类似,同样也会生成一份json文件,这个文件的名字是vue-ssr-client-manifest.json(项目启动以后可以通过地址/文件名访问到),当然必不可少的是,同样也需要引入一个叫做vue-server-renderer/client-plugin模块,作为webpack的插件供其使用。

首先要安装一下vue-server-render这个模块,这个是整个服务端渲染的核心,没有整个ssr是没有任何灵魂的。


npm install vue-server-render -S

安装完成之后,首先要找到webpack.dev.conf.js,首先要对其进行相关配置。

webpack.dev.conf.js


// 添加引入 vue-server-render/client-plugin 模块
const vueSSRClientPlugin = require("vue-server-render/client-plugin");

const devWebpackConfig = merge(baseWebpackConfig,{
plugins:[
new vueSSRClientPlugin()
]});

添加了这个配置以后,重新启动项目通过地址就可以访问到vue-ssr-client-manifest.json(http://localhost:8080/vue-ssr-client-manifest.json),页面中出现的内容就是所需要的client-bundle。

服务端配置

服务端会默认生成一个vue-ssr-server-bundle.json文件,在文件中会记录整个服务端整个输出,怎么才能生成这个文件呢?要在这个json文件,必须要引入vue-server-renderer/server-plugin,并将其作为webpack的插件。

在开始服务端配置之前,需要在src文件夹下面创建三个文件,app.js,entry-client.js,entry-server.js,创建完成之后需要对其写入相关代码。

src/router/index.js


import vueRouter from "vue-router";
import Vue from "vue";
import HelloWorld from "@/components/HelloWorld");

Vue.use(vueRouter);