基于vue-cli项目添加服务端渲染
两个示例的git地址:
1. 我的环境
2. 方式一:使用prerender-spa-plugin插件获得SSR的效果。
2.1 说明
2.2 初始化
1
|
vue init webpack vue-prerender-demo //此文章都是在webpack基础上配置的
|
1
|
cd vue-prerender-demo
|
2.3 配置
2.4 开始
1. 安装 prerender-spa-plugin, 因为依赖phantom js
,phantom 的安装比较蛋疼,太耗时了~
1
|
npm install prerender-spa-plugin -D
|
2. 开始 prerender 相关的配置:
1
|
//引用
|
3. 编译
1
|
npm run build
|
4. 验证
1
|
cd dist //进入到对应目录
|
2.5 优缺点
3. 方式二:使用官方提供的轮子在node端做SSR
3.1 说明
3.2 约束
3.3 准备工作
1
|
vue init webpack vue-ssr-demo
|
1
|
cd vue-ssr-demo
|
3.4 开始折腾
1. 首先安装 ssr 支持
1
|
npm i -D vue-server-renderer
|
2. 增加路由test
与页面
1
|
<template>
|
3. 在src
目录下创建两个js:
1
|
src
|
4. 修改router
配置。
1
|
import Vue from 'vue'
|
5. 改造main.js
1
|
import Vue from 'vue'
|
6. entry-client.js
加入以下内容:
1
|
import { createApp } from './main'
|
7. entry-server.js
1
|
// entry-server.js
|
8. webpack
配置
1
|
build
|
9. webpack 客户端的配置
1
|
const VueSSRClientPlugin = require('vue-server-renderer/client-plugin')
|
10. webpack 服务器端的配置
1
|
const webpack = require('webpack')
|
1
|
baseConfig.module.rules[1].options = '' // 去除分离css打包的插件
|
11. 配置package.json
增加打包服务器端构建命令并修改原打包命令
1
|
"scripts": {
|
12. 修改index.html
1
|
|
13. 运行构建命令
1
|
npm run build
|
14. 构建服务器端(官方例子使用的express
,所以此 demo 将采用koa2
来作为服务器端,当然,无论是 koa 与 express 都不重要…)
1
|
npm i -S koa
|
1
|
const Koa = require('koa')
|
15. 编写服务端代码
1
|
const Koa = require('koa')
|
1
|
node server.js
|
16. 大功告成
3.4 优缺点