两个示例的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 优缺点