前端自动化构建——需求和工具选择

  今天突然心血来潮,想把前端的一些人工工作流程自动化,其实之前已经在用grunt进行自动化构建,但总是觉得还是有些事情未做好。首先说说,前端平时需要做那些自动化吧:

1. 先讲HTML,每个项目每个页面都需要统一的头部,其他标题,关键字,作者等meta自行修改,body部分每个页面各自填充,但使用的框架统一。

2. CSS,我使用的是less来编写,所以需要编译成css,另外,编译过程,一些css属性需要自动添加浏览器前缀,例如border-radius,属性最好自动按照类型排序,一些css的编写细节自动帮我完成。同时,编译之后的css需要压缩,合并倒没什么所谓,因为css通常数量不多。

3. JS,这个我之前是jquery+seajs+underscore+backbone这个框架来编写前端模块化和实现MVC架构的,大的项目,小项目就直接jquery编写代码(介绍页面,下载页面之类)。不过经过我的最三考虑,我决定用requirejs替换seajs的作用,代码改动不大,原因主要是很多开源项目都是支持amd引用,要支持cmd引用需要增加几行源代码,可能seajs是国人编写,所以外国框架支持不多吧,另外觉得requirejs的依赖注入设计比较好,不过seajs还是很强啦。说回js的需求,最常用当然是压缩,另外是合并,第三才是检测语法。

4. 图片,图片素材基本就是适当压缩,如果UI设计师给的素材没压缩的话。

  好了,前端我没有每个细节都列出来,但常用的需求就是上面那些,解决方案,

1. HTML,那块很容易解决,简单写个bin脚本,把模板HTML复制过来即可。

2. CSS,我使用grunt进行自动化构建,grunt-contrib-less这个模块,具体配置方法可参考官方网站,至于自动添加前缀,我使用了less-plugin-autoprefix这个模块,说到这个模板,有几点需要注意的,第一,less必须更新版本,我之前还在用1.7.0,后来升级到最新2.4.0才能生效,第二,配置autoprefix的浏览器范围是,官网例子是browsers: ["last 2 versions"],这样子其实你是看不到效果的,因为那个配置的意思是,使用目前主流浏览器的最新2个版本的支持程度来决定要不要加前缀,所以我把配置改成较大的数字,需要支持最新的20个版本,哈~。第三,属性自动排序,这个我找到一个工具可以做这个事,但不是grunt的插件,是针对css的,不是针对less,叫csscomb,有Sublime Text编辑器插件版,但插件不能批量处理,所以建议使用nodejs接口去调用,批量处理。第四,压缩,这个简单,一个是grunt-contrib-less有个option参数,compress: true,另一个是使用grunt-contrib-cssmin这个模块。综合以上四个功能,构建顺序是,1.grunt-contrib-less编译less文件成css,2. less构建时添加plugins插件less-plugin-autoprefix,3.自定义任务去完成css属性自动排序这个功能,4. 压缩css,5. 有必要可以用grunt-contrib-concat这个模块合并文件。

3. js,压缩我使用grunt-contrib-uglify,虽然不是压缩得最多的,但grunt支持,压缩率还好啦,合并使用grunt-contrib-concat,检测使用grunt-contrib-jshint,编译coffee文件使用grunt-contrib-coffee,复制文件使用grunt-contrib-copy,不过由于使用了模块化,所以合并不能单纯把文件内容连接在一起,requirejs似乎提供了解决方案,自动根据引用的模块,合并js并压缩,下一篇文章我再说说这个,因为我还未看完实践。

4. 图片,没什么,用grunt-contrib-imagemin配置一下就行了。

  大概前端自动化构建完成大半了,各位还有什么需求可以补充,我补充几点问题:

1. 自动化构建,平时一边开发我会一边监听文件变化,例如less变化重新编译,js重新压缩等,这个监听工具我使用grunt-contrib-watch模块,运行命令行grunt watch即可运行配置好的watch任务,上线前可以一次性grunt运行一次default任务。但有个坑爹的问题,就是增加一个新文件的时候,watch没有添加到监听列表,要重启才能监听到新文件,后来发现是文件路径,用相对当前路径才能监听到新文件,用绝对路径只能监听到运行时的文件。例如

watch:
  app_js:
    files: ["static/js/app/**/*.js"]   // D:\code\xxx\static/js/app/**/*.js就不行
    tasks: [‘uglify:app‘,‘jshint‘]
    options:
      spawn: false
      interrupt: true

2. 请更新软件版本和模块版本来支持那些功能,今天还看了yeoman这个东西,其实就是分了三部分,yo负责生成模板代码,grunt负责构建,bower负责管理前端资源包,但模板毕竟是模板,不一定适合我项目的代码结构,而且他会安装一堆东西,所以我没用(同时安装yo是需要nodejs版本和npm版本更新的),grunt使用中,bower也没有使用,主要因为他只是做一个下载github项目整个代码的功能,而且固定下载到bower_components,对于前端调用和我的构建机制不方便,个人选择而已。

  文章写得没什么条理,不过为了避免老了的时候,技术忘得七七八八的时候,发现自己曾经苦逼的努力,没有留下一点痕迹,所以~~记录一下当程序员时的苦逼研究啦,哈哈!

时间: 2024-08-02 06:59:11

前端自动化构建——需求和工具选择的相关文章

前端自动化构建工具Webpack开发模式入门指南

Webpack Webpack是时下最流行的模块打包器 它的主要任务就是将各种格式的JavaScript代码,甚至是静态文件 进行分析.压缩.合并.打包,最后生成浏览器支持的代码 特点: 代码拆分方案:webpack可以将应用代码拆分成多个块,每个块包含一个或多个模块,块可以按需异步加载,极大提升大规模单页应用的初始加载速度 智能的静态分析:webpack的智能解析器几乎可以处理任何第三方库 Loader加载器:webpack只能处理原生js模块,但是loader可以将各种资源转换为js模块 p

web 环境搭建00前端自动化构建工具(gulp)

web 环境搭建----前端自动化构建工具(gulp): 1----先下载安装node.js 2----然后在node.js命令行安装:npm install gulp -g (全局下载安装gulp插件) 3----然后进入到项目文件夹(命令cd 文件夹名),在项目文件夹中安装依赖文件:npm install gulp --save-dev (根据依赖文件下载gulp插件) 4----在项目文件夹目录下初始化:npm init (初始化文件) {初始化文件后项目中会出现packgae.json文

前端自动化构建工具——gulp

gulp是基于流的前端自动化构建工具. 一.环境配置 gulp是基于nodejs的,所以没有 nodejs 环境的要先去安装好 然后给系统配上gulp环境 npm install -g gulp 再到某一工程目录下 跟grunt一般,也是需要package.json包依赖文件和一个入口文件 gulpfile.js(其他名字识别不了) 然后就类似的先装上gulp npm install gulp --save-dev 最基本的使用方式是这样:(使用jshint插件校验js代码) var jshin

前端自动化构建工具

全局安装是把包安装在Node安装目录下的node_modules文件夹中,一般在 \Users\用户名\AppData\Roaming\ 目录下,可以使用npm root -g查看全局安装目录 本地(局部)安装是把包安装在指定项目(要在指定的根目录下输入命令)的node_modules文件夹下(若没有,会自动创建一个node_modules文件夹) 具体区别,推荐博文:  全局安装和本地(局部)安装的区别 本地安装可以让每个项目拥有独立的包,不受全局包的影响,方便项目的移动.复制.打包等,保证不

浅谈前端自动化构建

前言 现在的前端开发已经不再仅仅只是静态网页的开发了,日新月异的前端技术已经让前端代码的逻辑和交互效果越来越复杂,更加的不易于管理,模块化开发和预处理框架把项目分成若干个小模块,增加了最后发布的困难,没有一个统一的标准,让前端的项目结构千奇百怪.前端自动化构建在整个项目开发中越来越重要. 我们首先来回想一下之前我们是如何来开始做一个项目的. ① 首先要确定这个项目要使用什么样的技术来实现,然后开始规划我们的项目目录,接着就要往项目增加第三方库依赖,比如: 拷贝 CSS库(Yui Reset |

「移动开发」iuap mobile玩转前端自动化构建

提起iuapmobile studio,相信大家已经不再陌生了,是进行移动应用开发的强大集成工具与必备神器.借助强大的iuap mobile studio,可以实现对开发.测试.调试.打包.发布全程管理.同时iuap mobile studio又是一个极具开放性的平台工具,可以与绝大多数优秀的前端框架.技术很好地集成.今天我们就来看看在iuap mobile上如何玩转这些如火如荼的前端自动化构建技术.说起目前主流前端自动化构建技术,少不了npm.grunt.gulp.browserify.web

浅谈前端自动化构建(摘抄)

前言 现在的前端开发已经不再仅仅只是静态网页的开发了,日新月异的前端技术已经让前端代码的逻辑和交互效果越来越复杂,更加的不易于管理,模块化开发和预处理框架把项目分成若干个小模块,增加了最后发布的困难,没有一个统一的标准,让前端的项目结构千奇百怪.前端自动化构建在整个项目开发中越来越重要. 我们首先来回想一下之前我们是如何来开始做一个项目的. ① 首先要确定这个项目要使用什么样的技术来实现,然后开始规划我们的项目目录,接着就要往项目增加第三方库依赖,比如: 拷贝 CSS库(Yui Reset |

近期总结:generator-web,前端自动化构建的解决方案

本文结合最近的工作经验,总结出一个较简洁的前端自动化构建方案,主张css和js的模块化,并通过grunt的自动化构建,有效地解决css合并,js合并和图片优化等问题,对于提高前端性能和项目代码质量有一定参考价值,欢迎阅读和点评:) github地址:https://github.com/liuyunzhuge/generator-web demo地址:https://liuyunzhuge.github.io/generator-web/ 有兴趣的同学,在阅读文章,学习或使用demo的过程中,有

基于gulp搭建的前端自动化构建框架

Gulp-cli 基于gulp搭建的前端自动化构建.适用于中小型项目,快速构建前端项目框架. 项目启动 // 常用命令 项目编译: npm run build 项目编译并启动: npm run start 项目地址 如对你有帮助,希望给个Star !哈哈哈!! git clone [email protected].com:perfectSymphony/Gulp-cli.git 项目目录 ├── README.md # 项目说明 |-- bin # (在gulpfile文件中使用到)解析lay