Web前端自动化入门总结

周末失眠,周一无力写代码,只能听着一首:逆流成河,顺便把最近刚入门的前端自动化写一下入门总结。

因为从事的开发重点是java后端,后端这几年随着maven,gradle等构建工具的使用也把以前jar管理解放了,记得刚毕业那会公司的方案是公司自己维护一个libs文件夹,把需要的jar放进去,然后ant写脚本打包。这种方式的缺点要自己记住jar的版本等等,然后更新比较繁琐,还有把jar提交到svn等版本管理工具,大小很大,共享麻烦。

说到前端自动化,现在应该是比较普及了,到github上面搜索一下web组件基本都是用到几个常用的构建组件。不过身处二线城市,一直从事企业系统开发的我,平常的开发,还是按老套路,直接建文件夹像libs,asset等,然后把需要的第三方库,像Jquery,easyui,angular之类的下载复制进去,然后开始写代码。这种方式缺点:同样没有统一管理web库,文件压缩合并等也没有考虑,每次写代码调试一直F5刷新,还时不时缓存没刷掉,上传git文件大小也是非常大。

最近自己空闲想做一个表单设计器,定了框架angularJs,bootstrap3。然后想用上前端自动化构建工具。开始分批介绍这几个工具:nodejs,yeoman,bower,grunt,gulp。

1.NodeJS

NodeJS这个神器就不做介绍,入门nodejs,可以发现一个新的世界,这是最好的诠释。这几个自动化构建工具都是基于nodejs使用。

一、安装

百度一下nodejs,根据系统版本选择下载安装。新版的基本都会自带npm(node的包管理工具)

安装完成:node -v ,npm -v 查看版本

二、配置

配置npm的全局模块的存放路径以及cache的路径(可以不做选择默认地址)


  1. npm config set prefix "C:\Program Files\nodejs\node_global" 
  2. npm config set cache "C:\Program Files\nodejs\node_cache" 

配置环境变量


  1. 系统变量下新建"NODE_PATH",输入”C:\Program Files\nodejs\node_global\node_modules“ 
  2. 用户变量"PATH"修改为“C:\Program Files\nodejs\node_global\” 

由于GWF原因可以选择修改镜像,或者安装cnpm,我建议选择翻墙软件,就不会在后续使用过程出现问题,这里贴一个我用的http://www.herogo.cc/Register/Index/2352499,注册送免费流量,暂时先用一下。

如果选择翻墙这里可以忽略


  1. 配置淘宝镜像:npm config set registry "https://registry.npm.taobao.org" 
  2. 查看配置:npm config list 
  3.  
  4. 安装cnpm:npm install -g cnpm –registry=https://registry.npm.taobao.org 

三、package.json

描述npm包的文件,类型maven的pom.xml,bower的bower.json等


  1. 属性说明: 
  2. dependencies:生产环境需要安装的包 
  3. devDependencies:开发环境需要的包 
  4.  
  5. 版本号: 
  6. ^:^0.4.1:发布了0.4.1会更新,1.X.X就不会更新 
  7. ~:~0.4.1:发布了0.4.1会更新,0.5.0就不会更新  
  8.  
  9. npm install:默认使用当前路径下的package.json安装包 
  10. npm install chajian:直接安装包到当前目录的node_modules 
  11. -g:全局安装 
  12. --save-dev:安装同时写入package.json 

2.Yeoman

Yeoman是Google的团队和外部贡献者团队合作开发的,他的目标是通过Grunt,Gulp,Bower的包装为开发者创建一个易用的工作流。

简单点说,在项目初始化的时候用了yeoman,自动帮你构建好基础的文件,还有所需要的bower,gulp,grunt等这些配置。

一、安装


  1. 官网:http://yeoman.io 
  2. 安装:npm install -g yo 
  3. 查看版本:yo --version 

二、使用

以angularJS为例:


  1. 安装generator-angular,其他项目可以上官网搜索 
  2. npm install -g generator-angular 
  3. cd 项目地址 
  4. yo angular 项目名 
  5. 根据提示选择需要的库 
  6. yeoman在使用的时候会提示一些常用库让开发者选择是否需要使用方便使用 

3.Bower

前端库管理器,用于搜索、安装和卸载如JavaScript、HTML、CSS之类的网络资源。现在有些开发者直接使用npm做前端库管理器,看需要先暂时使用bower,至于他和npm的利弊可以搜索文章比对一下。

一、安装


  1. 官网:https://bower.io 
  2. 安装:npm install -g bower 
  3. 查看版本:bower -v 

二、文件

.bowerrc:设置bower下载的文件位置,代理,超时时长等

bower.json:需要依赖的web包管理文件,类似package.json

三、使用


  1. 在官网搜索需要的web库,根据名称下载 
  2. bower install jquery  --单独下载web包 
  3. 没在bower注册: 
  4.     可以通过github短语安装(用户名/项目名  bower install wengweh/plumdo-word) 
  5.     可以通过github地址安装 bower install https://github.com/wengwh/plumdo-word.git 
  6.     可以通过URL直接安装 bower install http://www.baidu.com 
  7. bower install jquery  --save   --把依赖添加到bower.json 
  8. bower install jquery  --save-dev  --把依赖添加到bower.json中的开发依赖 
  9. bower install  --直接根据当前目录的bower.json下载 
  10. bower init  --生成bower.json文件 

4.Grunt

通过配置一系列的task,定义task处理的事务(例如文件压缩合并、雪碧图、启动server、版本控制等),然后定义执行顺序,来让grunt执行这些task,从而构建项目的整个前端开发流程。

一、安装


  1. npm install -g grunt-cli 

二、指令


  1. grunt taskname:运行指定task 
  2. grunt taskname:target:运行指定task内部的target  
  3. grunt:运行default的task 

三、task

grunt的功能就是执行一系列的task来实现,所以它的task是非常多的,如果有需要了解可以搜索一下,这里介绍几个常用的task

1.copy 顾名思义复制文件、文件夹


  1. copy:{ 
  2.     dist:{ 
  3.           src:'<%= config.app %>/js/index.js',---原地址 
  4.           dest:'<%= config.dist %>/js/index.js',--目标地址 
  5.     }, 
  6.     dist:{ 
  7.          files:[  --使用数组 
  8.                 { 
  9.                          expand:true, 
  10.                          cwd: '<%= config.app %>/', 
  11.                          src:'*.html', 
  12.                          dest:'<%= config.dist %>/', 
  13.                          ext:'.min.html', --修改后缀名 
  14.                          extDot:'first',--指定修改的后缀名开始位置 
  15.                          flatten:false --不会复制到指定目录 
  16.                          rename:function( dest,src){ 
  17.                                 return dest+'js/'+src; 
  18.                          } 
  19.  
  20.                 }, 
  21.                 { 
  22.                      src:'<%= config.app %>/js/index.js', 
  23.                      dest:'<%= config.dist %>/js/index.js', 
  24.                 } 
  25.           ] 
  26.     }, 
  27.     dist_files_object:{ 
  28.           files:{ --使用键值对 
  29.                  '<%= config.dist %>/index.html':'<%= config.app %>/index.html', 
  30.                  '<%= config.dist %>/js/index.js':['<%= config.app %>/js/index.js'] 
  31.          } 
  32.       } 

2.wiredep

给对应文件写入需要引入的js,css文件。当使用bower管理web库的时候,肯定不希望还要一个个在页面中去引入对应的js,css文件,这个插件就是解决这个的问题。

3.autoprefixer

给css文件生成自动根据浏览器生成对应的css内容

4.watch

监听文件,有修改执行相应任务。在开发的过程可以实时做出变化,就无须在手动执行指令


  1. watch: { 
  2.       bower: { 
  3.         files: ['bower.json'], 
  4.         tasks: ['wiredep'] 
  5.       }, 

5.uglify

js压缩,可以设置是否生成js的对应map

5.Gulp

Gulp和Grunt的功能定位是基本一致的,这两者经常被拿来做比较。现在好像gulp大有代替grunt的意思。不过对于我们使用者来说,他们的变更影响不算太大,基本task也是类似,所欲无需顾虑太多。

安装


  1. 官网:gulpjs.com 
  2. 安装:npm install -g gulp 
  3. 查看版本:gulp -v 

最后结语,最近做的plumdo-form表单设计器使用了yeoman,bower,gulp来构建。基本问题不大,用起来也还算顺手。现在的前端变化非常大,从去年angular,vue,react这3大阵营互相争夺,加上现在构建工具也是一大堆(webpack没介绍),可能有些人提出了是不是徒增问题,为什么不回归原始方案。其实各种技术的出现都有他的背景和使用情况。所以还是遵从根据实际情况出发,不一定用上什么技术就是好的,没有就是low的。只有根据项目的需要和背景选择适合自己的才是最好的。

作者:迷途的码农

来源:51CTO

时间: 2024-10-11 23:34:00

Web前端自动化入门总结的相关文章

《Web前端开发最佳实践》——导读

前 言 Web前端开发入门难度并不高,但是初学者如果没有一个很好的学习和编码习惯,则开发水平的提高速度会变得很慢.下面几点是影响Web前端开发者技术提高的主要因素. 其一是开发者缺乏良好的实践指导.Web前端兴起的时间不长,很多大学都还没有来得及开一门专门讲解Web前端的课程,因此,大部分的Web前端开发者都是通过自学的方式来了解Web前端相关的技术.开发者学习前端技术的渠道很多,其中很大一部分是通过查找网络资源的方式,而网络上充斥着大量的错误或者过时的实践方法,这些实践方法很容易误导初学者,使

参加web前端学习前需要知道的注意事项

随着web前端的飞速发展,学习web前端的人员也是越来越多,从目前web前端行业发展形式来看,学习web前端最快最高效的方法就是参加web前端培训了.其实,参加web前端培训是一个循序渐进的过程,那么我们在参加web前端培训时都需要注意什么呢?今天来为大家分享以下几点建议. 第一,基础的重要性 无论做什么都一定要有扎实的基础,参加web前端培训也不例外,只有基础牢固,才能更深入的学习新技能.作为一名初级的web前端工程师,你必须要具备最基础的技术要素:HTML,CSS和JavaScript.这是

Web前端新人笔记之jquery入门心得(新手必看)_jquery

本章将为大家介绍以下几点内容: 1.jquery的主要特点: 2.建立jquery的编码环境: 3.简单jquery脚本示例: 4.选择jquery而不是纯javaScript的理由: 5.常用的jquery开发工具:jquery能做什么? ① 取得文档中的元素 $('div.content').find('p'); ② 修改页面的外观 $('ul > li:first').addClass('active'); ③ 改变文档内容 $('#container').append('<a href

一张图掌握移动Web前端所有技术(大前端、工程化、预编译、自动化)

你要的移动web前端都在这里! 大前端方向:移动Web前端.Native客户端.Node.js. 大前端框架:React.Vue.js.Koa 跨终端技术:HTML 5.CSS 3.JavaScript 跨平台框架:React Native.Cordova 前端工程化:Grunt.Gulp.Webpack 前端预编译:Babel.Sass.Less 自动化测试:Jasmine.Mocha.Karma 一图在手,应有尽有!

淘宝前端工程师:国内WEB前端开发十日谈

中介交易 SEO诊断 淘宝客 云主机 技术大厅 一直想写这篇"十日谈",聊聊我对Web前端开发的体会,顺便解答下周围不少人的困惑和迷惘.我不打算聊太多技术,我想,通过技术的历练,得到的反思应当更重要. 我一直认为自己是"初级"前端开发工程师,一方面我入道尚浅,只有短短几年,另一方面我自知对技术的钻研并不深入,可能是由于环境的原因,当然最重要的是,我幸运的参与到互联网崛起的浪潮之巅.时势造就了一批技能薄弱但备受追捧的"弄潮者",这在很大程度上影响我

Grunt安装配置教程:前端自动化工作流

文章简介:Grunt 打造前端自动化工作流. Grunt这货是啥? 最近很火的前端自动化小工具,基于任务的命令行构建工具 http://gruntjs.com Grunt能帮我们干啥? 在开始介绍前,先向大家描述下面的场景: [场景1:项目开始前] 先建立一个 projA 的文件夹 再建 html css js images (建5个或以上文件夹,花费1分钟) 拷贝 CSS库(Yui Reset bootstrap)JS库(Requiet.js Seajs jQuery jQuery插件 ) 进

web前端开发经验浅谈:分享看过的书籍和成长过程

文章简介:说说我的web前端之路 分享些前端的好书. WEB前端研发工程师,在国内算是一个朝阳职业,这个领域没有学校的正规教育,大多数人都是靠自己自学成才.本文主要介绍自己从事web开发以来(从大二至今)看过的书籍和自己的成长过程,目的是给想了解JavaScript或者是刚接触JavaScript的朋友,介绍如何通过循序渐进的看书来学习javascript. 一. 入门级 :就是有一定的基础(比如最常见的HTML标签及其属性.事件.方法;最常见的CSS属性;基础的JavaScript编程能力),

用户体验设计:产品工程师和WEB前端工程师

我敢打赌,在中国,一半以上甚至更多的,以网站为主营业务的或者把网站很看重的公司,没有Web前端工程师和产品工程师这两个职位,甚至有些有点规模的公司也可能没有这个职位,当然,这不能包括像alibaba,sina,163这样的公司,只是指中小型公司而言.如果你们公司有,请给我留言告诉我你们公司的规模和相关的信息. 做得好一点的公司,一般是项目经理/部门主管+投资方(项目管理中的投资方,实际上就是老板,反正就是决定你要做什么并给你钱的人)来承担产品工程师的角色,由美工来承担Web前端工程师的角色,特别

Web前端工程师定位浅谈

先给前端工程师的工作下个一句话定义:运用前端技术,实现体验的良好传达.如果在前面加上Web,那么是针对Web这个领域的,主要是互联网,也可以将移动通信网络和其他传媒网络(比如IPTV)包含在内,因为其理念是一致的. 现在要在未毕业的学生中找到一个符合技能条件的Web前端工程师可以说是少之又少.而相关领域的从业者,又因为不被重视.干杂活.薪水低等原因,觉得选错了行当,又停止了在这个方向上的努力学习.最终导致企业招不到一位满意的Web前端工程师.这涉及到两个定位的问题,即1)企业如何给Web前端工程