Gentlegay / blogs

0 stars 0 forks source link

fis,spm,seajs构建前端工程化实践 #2

Open Gentlegay opened 9 years ago

Gentlegay commented 9 years ago

前端工程化(战国化)

目前我在公司再做基本架构,基于2个概念,”前后端分层“和”模块化“, 首先想到的就是使用seajs+spm的支付宝开发方式, 原因大家可以猛戳。。。, 但是seajs配套工具spm,出现以来一直问题多多,其它只要按照规范去写, 也没什么太大问题,但是在开发中还是遇到了一些没办法解决的坑。

这就是坑。

  1. 打包慢,我上个项目因为完全实现前后端分离,如果有复杂的代码库,spm又不支持单文件打包,所以每次修改个小东西打包至少都要3分钟。
  2. 不支持md5,前端开发遇到的最痛苦的事情就是缓存,而解决缓存的方法无非加时间戳或随机数,spm并不具备,那么我就选择fis。
  3. 不具备像fis的辅助开发功能,比如文件监听,但是fis有没有像seaJs一样完整的套件和开发方式,fis打包seajs会把一些关键字删掉。

    但是割舍不掉。

  4. spm会自动生成js的debug文件,这样在真实环境调试会方便很多。
  5. spm是为seajs定制的,使用方便。
  6. 包依赖管理,spm合并代码时对于包扫描,还是相对简单,不用配置很多东西。

    可不可以根据场景为技术导向的开发模式?

seajs最大优点有一套成熟的套件和模块化开发方式,那么我们可不可以把我的前端开发方式也剥离开。

  1. 组件开发组
  2. 项目开发组

    组件开发

这部分因为功能单一,因为为多个项目提供引用的问题,
不能随便修改,而且每个完成版本都要做非覆盖方式的发布,以保证引动的项目不出现问题,
所以我们要做的工作只是写测试demo,压缩打包,这样就不需要fis强大的功能,直接使用spm就可以了。

项目开发组

这部分东西有很深的业务场景,功能比较复杂,我们这部分也可以分成2部分,
一个是项目级别的组件加载器,一个是页面级别的js代码,主键加载器还是使用spm打包压缩
页面级别的js代码直接使用fis做为管理工具,这样我们就完美结合了3者的优点。

开发中的其他问题及解决方式