-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
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
欢迎一起探讨各自在前端开发中遇到的工程问题 #8
Comments
工作5年了,一直处于公司需要什么研究什么的的状态,一直没仔细认真的去研究过某项东西,之前做的项目都是基于局域网的管理系统,现在准备做web项目,但是从来没设计过这方面所以有些不知所措,不知道该怎么做,后来通过网络了解了前端模块化的概念,也使用了seajs等,最近有开始接触fis打算想把这两个混合用,但是不知道怎么下手,不知道楼主有没有什么好意见 |
@lucifercha 不建议将 seajs 与 fis 混合在一起用,建议用 webpack + fis3
|
@nimojs 好的谢谢 我研究研究 |
如何与 fis 的 map.json 结合构建一个基于 git 和 node 的前端静态资源服务器?
以前前端静态文件是与后端 server 一起发布的,现在有一个服务器可以用于做专门的静态资源服务器。 目前想法:
我现在遇到 2个关键问题
|
可以新开issue。。。 关于代码发布发布静态资源看你们自己的部署方案吧。一般是公司内撘一个ci系统,比如jenkins,然后在上面安装运维提供的部署脚本,然后配置gitlab(通常不用github,防止泄密)的webhook,一有提交就发请求到jenkins上,jenkins拉取代码,调用fis构建,然后把产出的代码通过运维脚本推送到测试或者生产环境。大致的流程是:
运行效果:
总之效果就是【提交代码】→【自动部署】,【自动部署】包括了【构建】+【代码推送】 关于map.json回滚其实每次发布,都可以把构建好的代码生成一份tar包存到代码库里,生产/测试/开发环境可以自由切换任意版本的包。服务端的包自然携带了map.json,切换哪个就代表了回滚哪个。静态资源不用回滚,丢在静态资源服务器就好了 |
@fouber 感谢回复,目前我们没有运维人员。 考虑使用 githook master分支同步部署
版本回滚通过回滚后端中的 map.json 实现。 区别于 server 构建缺点应该是在 git 中会存在很多构建后的 md5后缀文件。 对于这些 |
这里的运维脚本包括中 fis 的构建代码么? |
或者使用另外一种手动发布的方案 前端生成环境使用git/svn,需要发布时使用 fis 的deploy-部署配置 和 fis-deploy-git 手动发布构建后的代码到前端静态资源服务器。 没有运维人员的情况下就做好版本控制和能快速控制版本回滚。 |
有一些低成本的做法,借助git:
你的 source
├─ components
├─ views
├─ server
├─ release.sh
└─ fis-conf.js 你的 release
├─ build-20150328143321.tgz
├─ build-20150410162404.tgz
├─ build-20150628203349.tgz
├─ ...
└─ deploy.sh 要上线(或回滚)什么包,就在release仓库下执行: ./deploy.sh build-20150410162404.tgz |
webpack+gulp,基本可以解决模块打包和上线的问题了 😄 |
@fouber 而 |
webpack和gulp都只是构建工具,上线部署和包管理还需要额外的工作 |
release是保存各种历史发布包的仓库,你需要这个仓库以方便快速回滚啊,map.json只是资源表,回滚不仅仅回滚前端资源表,还有你的后端模板也可能需要一并回滚 |
@fouber |
@nimojs 静态资源服务器上的内容可以只增不减,但你的服务端模板以及模板所使用的map.json还是需要整体部署或回滚,只改map.json可能会导致模板与静态资源内容不匹配而报错 |
@fouber 看来还是 有一些低成本的做法,借助git 方式最合适。 按照这个方法,每次版本更新需要开发人员在 release 仓库运行 |
如果你的静态资源服务器和模板服务器是不同的webserver,比如静态资源要推送到七牛上,那么你可以:
|
@fouber 那么最终可以采用:发布到测试环境时提交后端模板、map.json 、执行 deploy.sh 发布静态资源到static server。 测试环境发布到正式环境由后端解决,而前端资源在发布测试机时就已经部署好了。 |
@fouber 感谢,我这里现在还没有包管理的需求(主要是太小了....),暂时webpack和gulp直接可以解决上线部署的东西,不过看了这些开阔了视野了!!! |
楼上的各位讲的都太高大上 看的云里雾里的 |
@jialezhang |
多谢 @fouber 大神讲解!这些东西估计要等到有好几个人一起开发才需要了 |
@fouber (以下源码指的是未处理的 less sass 等文件)
这样源码在 git中做版本控制。需要回滚就回滚 map.json。(其实就是 fouber 给出的第一个方案中去掉 jenkins 的版本)。开发人员只关心2个步骤 【本地编码看效果】 -> 【GIT RP 到 master】 但是 在 server 运行 fis 构建后得到的 map.json 如何发布到后端服务器我不知道怎么做合适。 目前想出2种做法:
|
@nimojs 关于map.json推送服务器的问题,可以考虑用rsync,建立两台机器的信任关系,然后rsync推送 |
@fouber |
@jialezhang |
@Jokcy |
有没有介绍FIS的灰度发布相关的内容 我理解下来,灰度发布可以通过类似于<%require_js("core:core.js")%>这样的require_js方法来控制读取不同版本的文件。同时,获取mapjson的时候也需要返回不同版本才行。想法不太成熟。 |
|
thanks
…On Tue, Nov 27, 2018 at 5:15 PM Roc Wong ***@***.***> wrote:
@kursk-ye <https://github.com/kursk-ye> 可以试试这个
http://www.fancynode.com.cn/pxcook
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#8 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AEfjgfsoxg0ClSUKcUQdRWHSxl9MoA4Gks5uzQKkgaJpZM4FL8V->
.
--
此致
敬礼
|
那你都看到了,还不确定有没有?大佬别@我了,我还得搬砖.哪有时间和你扯淡,勿扰.谢谢
发自hjai
在2018年11月27日 17:13,kursk<notifications@github.com> 写道:
这个不是我杜撰的吧,我看到了这款插件,应该有这个功能吧 http://kitchen.alipay.com/
…On Tue, Nov 27, 2018 at 5:09 PM Hjai ***@***.***> wrote:
'可以让原型直接变成VUE或React的UI组件所形成的页面'.有点惹不起,大佬大佬
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#8 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AEfjgUdfdHs_B4lY8TD6YY4oIwutwqQwks5uzQE6gaJpZM4FL8V->
.
--
此致
敬礼
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.
|
thanks,这个组件化代码的思路很有启发
…On Tue, Nov 27, 2018 at 5:15 PM swide ***@***.***> wrote:
[image: image]
<https://user-images.githubusercontent.com/9801090/49070979-d7bf6c80-f267-11e8-87d1-834d8ff50eaa.png>
@kursk-ye <https://github.com/kursk-ye> 这个是支持表格吧,比较表格这种结构比较死
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#8 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AEfjgWC6y5xU6oyxRpFJmeI0VtSqd2IIks5uzQKygaJpZM4FL8V->
.
--
此致
敬礼
|
@kursk-ye 既然前端他们都说实现不了,就可以优化了,换一波人。 |
未来的前端界面,很有可能都是由AI生成的。对于很多『用完即弃』的活动专题页,或许都应该交给机器和算法生成,把前端工程师从重复劳动中解脱出来。
|
这里,我也想请教大家一个问题,设计稿的分辨率大小是确定的。但是现在市面上客户端的分辨率是不确定的,怎么去适应市面上不同分辨率设备的用户呢
chenzhuanyon@foxmail.com
发件人: kursk
发送时间: 2018-11-27 16:56
收件人: fouber/blog
抄送: Subscribed
主题: Re: [fouber/blog] 欢迎一起探讨各自在前端开发中遇到的工程问题 (#8)
请问大家现在的公司用什么工具将原型转化成前端开发人员可以直接使用的页面的。我们公司的前端程度很低,让大家见笑了,今天开会本来想解决设计组和前端组的分歧,设计组说她们(都是美女)使用Sketch画出原型后,前端开发组总是说这不能实现,那不能实现,搞得项目经理每次拿原型给客户确认以后又做不到,让项目经理很恼火!然后有人说蚂蚁金服的ant designer有react插件库可以用于Sketch,但是大家都没有做过,现在还在研究这事,再说Sketch只能在mac上安装,投资比较大啊!
所以我想请问一下大家各公司有什么比较好的解决方案,可以让原型直接变成VUE或React的UI组件所形成的页面,即使不能完成转换,大部分转换小部分人工修改也可以,不知道各位有没有比较好的实践?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
|
对于合理拆分组件的理解不足 请问有木有相关的资料可以阅读?谢谢 |
@chen-Aaron 设计时就应该考虑响应式啊,要么设计师考虑,要么前端自己设计,不过前端自己设计的话界面设计或者产品未必能满意。推给设计去做吧,也不用太多,考虑好你的用户的可能的设备范围,分好分辨率范围让他/她考虑。比如如果你做个B端的后台管理,估计不用考虑手机那种情况了,又或者专门做大屏展示,就专门设计指定分辨率的都差不多了。 |
首先一个问题是设计不可能每个分辨率都设计,其次只靠前端也没法实现所有分辨率情况。办法:设计几版界面变动比较大的情况,其他响应式自己搞. |
AI只是工具,而且AI必须满足受人控制,相信那时,前端会变得更有趣,更高级 |
有没有微前端的好的实现方案?现在公司由于各个前端应用都独立代码库,发布,部署,但是他们之间又有各种联系,希望在UI层面运行时将他们集成起来,一个很明显的例子就是页面上的header是由公共团队开发的,我的想法是将header的静态资源放到CDN上,各个应用通过网络加载header,现在希望各个应用不进行部署发版本就能够获得最新的header,那么这个版本怎么控制,还有缓存怎么控制?如何实现不发版本能够更新页面上对CDN上静态资源的依赖? |
|
恩,这个repos虽然命名是blog,一开始也定义为我的个人博客,但感觉光我一个人码字也挺空虚寂寞冷的,所以希望有在前端工程方面遇到问题,或者有所感悟,或者有所实践的同学,可以尽情在issues里开启话题来与大家分享交流,有个比较集中的地方讨论有关前端方面的工程问题也挺好的不是~~
The text was updated successfully, but these errors were encountered: