We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[TOC]
浅谈前端集成解决方案
目录规范,编码规范,commit规范
模块化开发
组件化开发
在模块化基础上分拆页面成可复用的组件
将组件放到一个公共的地方,供团队共享
工程问题和统计问题
项目部署
静态资源缓存、cdn、非覆盖式发布等问题。可配置化、操作简化
开发流程
本地开发调试、视觉效果走查确认、前后端联调、提测、上线等环节
开发工具
自动化测试
资源定位
将 工程路径 转换为 部署路径, 把相对路径变成绝对路径并且加上md5戳和域名
前端开发体系建设日记
seajs会需要load完一个或是一层,分析以后才创建接下来的script请求,速度会慢很多。再者,资源依赖表的好处在于可以为加载与执行的组合提供无穷可能,包括了bigPipe,首屏加载,滚动加载这样的需求,在知道了依赖关系以后,这些特定情况就可以用js编码来完成。
一般是公司内撘一个ci系统,比如jenkins,然后在上面安装运维提供的部署脚本,然后配置gitlab(通常不用github,防止泄密)的webhook,一有提交就发请求到jenkins上,jenkins拉取代码,调用fis构建,然后把产出的代码通过运维脚本推送到测试或者生产环境。大致的流程是:
运行效果:
流程:【提交代码】→【自动部署】,【自动部署】包括了【构建】+【代码推送】
关于map.json回滚
其实每次发布,都可以把构建好的代码生成一份tar包存到代码库里,生产/测试/开发环境可以自由切换任意版本的包。服务端的包自然携带了map.json,切换哪个就代表了回滚哪个。静态资源不用回滚,丢在静态资源服务器就好了
缺点:
CMD 模块定义规范
注意:
// 错误用法!!! exports = { foo: 'bar', doSomething: function() {} }; // 正确用法 return { foo: 'bar', doSomething: function() {} }; module.exports = { foo: 'bar', doSomething: function() {} }; // seajs主入口 seajs.use(['./hello.js'], function(result) { console.log(result); })
前端工程与性能优化
Livereload的原理:在浏览器和服务端之间创建websocket连接,服务器端在执行完动态编译后发送reload事件至浏览器,浏览器接收事件后刷新整个网页。
HMR: 以局部刷新代替整体刷新,webpack向构建输出的文件中注入了一项额外的功能模块--HMR Runtime。同时在服务端也注入了HMR Server。
环境区分
强缓存:先看过期没有,过期再看内容 协商缓存:直接看内容
Cache-control:
请求用If-none-match,响应用Etag
在no-cache或者max-age、expires过期后
缺陷:
问题:
结论:
webhook是一种用于在服务器之间进行实时通信的策略,源服务器通过监听某种事件(git的push事件),在事件发生后发送http请求至目标服务器
The text was updated successfully, but these errors were encountered:
No branches or pull requests
[TOC]
工程技术元素
浅谈前端集成解决方案
目录规范,编码规范,commit规范
模块化开发
组件化开发
在模块化基础上分拆页面成可复用的组件
将组件放到一个公共的地方,供团队共享
工程问题和统计问题
项目部署
静态资源缓存、cdn、非覆盖式发布等问题。可配置化、操作简化
开发流程
本地开发调试、视觉效果走查确认、前后端联调、提测、上线等环节
开发工具
自动化测试
资源定位
将 工程路径 转换为 部署路径, 把相对路径变成绝对路径并且加上md5戳和域名
css处理
, 自动css scprites等
工程设计步骤
前端开发体系建设日记
seajs会需要load完一个或是一层,分析以后才创建接下来的script请求,速度会慢很多。再者,资源依赖表的好处在于可以为加载与执行的组合提供无穷可能,包括了bigPipe,首屏加载,滚动加载这样的需求,在知道了依赖关系以后,这些特定情况就可以用js编码来完成。
前端语言缺乏三种能力
代码发布
一般是公司内撘一个ci系统,比如jenkins,然后在上面安装运维提供的部署脚本,然后配置gitlab(通常不用github,防止泄密)的webhook,一有提交就发请求到jenkins上,jenkins拉取代码,调用fis构建,然后把产出的代码通过运维脚本推送到测试或者生产环境。大致的流程是:
运行效果:
流程:【提交代码】→【自动部署】,【自动部署】包括了【构建】+【代码推送】
关于map.json回滚
其实每次发布,都可以把构建好的代码生成一份tar包存到代码库里,生产/测试/开发环境可以自由切换任意版本的包。服务端的包自然携带了map.json,切换哪个就代表了回滚哪个。静态资源不用回滚,丢在静态资源服务器就好了
模块规范
CommonJS
AMD/CMD
缺点:
ES6 Module
CMD 模块定义规范
CMD规范
注意:
性能优化
前端工程与性能优化
非覆盖式更新
用户体验
工程质量
工程开发效率
Livereload的原理:在浏览器和服务端之间创建websocket连接,服务器端在执行完动态编译后发送reload事件至浏览器,浏览器接收事件后刷新整个网页。
HMR: 以局部刷新代替整体刷新,webpack向构建输出的文件中注入了一项额外的功能模块--HMR Runtime。同时在服务端也注入了HMR Server。
工程化工具
构建功能规划
环境区分
增量更新与缓存
http缓存策略
强缓存:先看过期没有,过期再看内容
协商缓存:直接看内容
Cache-control:
请求用If-none-match,响应用Etag
在no-cache或者max-age、expires过期后
覆盖更新
缺陷:
增量更新
问题:
结论:
webhook与自动构建
webhook是一种用于在服务器之间进行实时通信的策略,源服务器通过监听某种事件(git的push事件),在事件发生后发送http请求至目标服务器
持续集成、持续交付、持续部署
The text was updated successfully, but these errors were encountered: