在当下前端组件化特别流行的时代,怎样保证团队进行Vue组件化开发,又能保证网站SEO呢?
下面我就讲一下我的经历~
开始我一直以为Vue还没有完善的SSR脚手架,直到自己写了一个比较粗糙的跟同事们普及的时候,一同事说出了nuxt这个词的时候。
唉,自己竟然不知道,不要笑话我…真实无知了
现在开始讲一下我的Vue nuxt 项目初构的过程
环境搭建
nuxt 相关的脚手架已经集成到了 vue-cli,同时提供 starter、express、koa、adonuxt
这里我们用的是 koa2
|
|
此时监听 3000 端口,如果有 bug,别犹豫,先升级 node 版本到最新。
项目跑起来之后,有一个简单的轮廓,两个页面,index 和 about。
目录结构
具体请参考:https://zh.nuxtjs.org/guide/directory-structure
但是这个根目录结构对于我这个有特殊癖好的人来说感觉太太太… 特么的多了
下面进行改造
1. 在nuxt.config.js中添加节点
|
|
2. 在项目根目录创建client目录,并将assets、components、layouts、middleware、pages、static、store移到该目录
以上对于client端的改造告以段落
Koa2 server端改造
1. 改造server端,必须先加上路由,加路由就得加自动路由,没那功夫建个子路由还要到server/index.js里进行添加
创建server/autoRoutes.js,大致意思自己意会吧,相信大家都能看懂。
|
|
在server/index.js里添加
|
|
创建在server/controllers文件夹
写一个测试控制器server/controllers/user.js
大家可以npm run dev 运行下试试
浏览器输入http://localhost:3000/user/index查看效果
2. 没有日志的东西是没法在线上运行的,项目稳定不稳定都不知道,查问题都不知道
下面安装koa-log4
|
|
新建配置文件config/log4js.js
|
|
接下来还是在server/index.js里添加
|
|
前端报错收集
想要收集项目运行过程中用户的前端报错,就得依赖window.onerror了
1.在client文件夹创建app.html并添加window.onerror方法
为什么呢,因为脚手架默认html文件你是找不到的,要想修改必须新建一个app.html
|
|
2.上边这里接口是我项目内写的
我新建了一个server/controllers/error.js
|
|
具体ctx.Log4js是怎么来的?我是在server/index.js中添加以下代码:
注意:放在AutoRoutes.auto(app)前边
辅助方法
新建配置文件config/app.js
在根目录创建helper目录
新建helper/utils.js
新建helper/services.js,这个挺有意思的通过配置文件一下就生成了所有接口的请求方法,再也不用一个写一遍了
这个依赖了axios,自行npm安装吧
|
|
想要调用http://localhost:3000/user/list接口直接如下:
|
|
以上,所有的初期工作就基本完成了,基本可以交给团队进行项目开发了