nodejs前端自动化构建环境的搭建
为了ued前端团队更好的协作开发同时提高项目编码质量,我们需要将web前端使用工程化方式构建;
目前需要一些简单的功能:
1. 版本控制
2. 检查js
3. 图片合并
4. 压缩css
5. 压缩js
6. 编译sass
这些都是每个web项目在构建、开发阶段需要做的事情。前端自动化构建环境可以把这些重复工作一次配置,多次重复执行,极大的提高开发效率。
目前最知名的构建工具: gulp、grunt、npm + webpack;
grunt是前端工程化的先驱
gulp更自然基于流的方式连接任务
webpack最年轻,擅长用于依赖管理,配置稍较复杂
推荐使用gulp,gulp基于nodejs中stream,效率更好语法更自然,不需要编写复杂的配置文件
use gulp to automate front-end build tasks
gulp是基于 node.js的,需要要安装 node.js
1、为了确保依赖环境正确,我们先执行几个简单的命令检查。
node -v
node是一个基于chrome javascript v8引擎建立的一个解释器
检测node是否已经安装,如果正确安装的话你会看到所安装的node的版本号
2、接下来看看npm,它是 node 的包管理工具,可以利用它安装 gulp 所需的包
npm -v
这同样能得到npm的版本号,装 node 时已经自动安装了npm
3、开始安装gulp
npm install -g gulp
全局安装 gulp
gulp -v
得到gulp的版本号,确认安装成功
基础安装结束
-
4、切换到你的在项目根文件夹下,运行
npm install gulp --save-dev
//将具体的gulp功能插件局部安装项目下
5、安装gulp功能插件依赖包
npm install gulp-jshint gulp-sass gulp-concat gulp-uglify gulp-rename--save-dev
gulp功能模块的文件会放在项目所在的目录的./node_modules 下
6、我们目前先使用一些简单的功能:
- 检查javascript
- 编译sass文件
- 合并javascript
- 压缩合并并重命名javascript
新建gulpfile.js 配置文件放在项目根目录下
演示项目目录结构
testproject (项目名称) |–.git 通过git进行版本控制,项目自动生成这个文件 |–node_modules 组件包目录 |–dist **发布环境**(编译自动生成的) |–css 样式文件(style.css style.min.css) |–images 图片文件(压缩图片\合并后的图片) |–js js文件(main.js main.min.js) |–index.html 静态页面文件(压缩html) |–src **开发环境** |–sass sass文件 |–images 图片文件 |–js js文件 |–index.html 静态文件 |–gulpfile.js gulp配置文件 |–package.json 依赖模块json文件,在项目目录下npm install会安装项目所有的依赖模块,简化项目的安装程序
现在,项目文件夹都建好,组件也安装完毕了,我们需要编写gulpfile.js文件以指定gulp需要为我们完成什么任务。
gulpfile.js内容如下:
// 引入gulp var gulp = require('gulp'); // 引入组件 var jshint = require('gulp-jshint');//检查js var sass = require('gulp-sass'); //编译sass var concat = require('gulp-concat');//合并 var uglify = require('gulp-uglify');//uglify 组件(用于压缩 js) var rename = require('gulp-rename');//重命名 // 检查js脚本的任务 gulp.task('lint', function() { gulp.src('./js/*.js') //可配置你需要检查脚本的具体名字。 .pipe(jshint()) .pipe(jshint.reporter('default')); }); // 编译sass gulp.task('sass', function() { gulp.src('./scss/*.scss') .pipe(sass()) .pipe(gulp.dest('./css'));//dest()写入文件 }); // 合并,压缩js文件 // 找到 js/ 目录下的所有 js 文件,压缩,重命名,最后将处理完成的js存放在 dist/js/ 目录下 gulp.task('scripts', function() { gulp.src('./js/*.js') .pipe(concat('all.js')) .pipe(gulp.dest('./dist')) .pipe(rename('all.min.js')) .pipe(uglify()) .pipe(gulp.dest('./dist')); console.log('gulp task is done');//自定义提醒信息 }); .... // 其他任务类似 // 定义默认任务,执行gulp会自动执行的任务 gulp.task('default', function(){ gulp.run('lint', 'sass', 'scripts'); // 监听js文件变化,当文件发生变化后会自动执行任务 gulp.watch('./js/*.js', function(){ gulp.run('lint','scripts'); }); });
7、现在,回到命令行窗口,可以直接运行gulp任务了。
gulp
这将执行定义的default任务,就和以下的命令式同一个意思
gulp default
当然,我们可以运行在gulpfile.js中定义的任意任务,比如,现在单独运行sass任务:
gulp sass
8、编译会显示finished,如果你的js有什么不好的地方它会提醒,避免一些不必要的错误,十分贴心
常见提醒:
1.禁止在同一行声明多个变量。
2.请使用 ===/!==来比较true/false或者数值
3.使用对象字面量替代new array这种形式
4.不要使用全局函数。
5.switch语句必须带有default分支
6.函数不应该有时候有返回值,有时候没有返回值。
7.for循环必须使用大括号
8.if语句必须使用大括号
9.for-in循环中的变量 应该使用var关键字明确限定作用域,从而避免作用域污染。
9、gulp的插件数量很多,后面还可以根据自己的需要进行添加任务
常用的gulp插件参考
gulp-imagemin: 压缩图片
gulp-ruby-sass: 支持sass,安装此版本需要安装ruby
gulp-minify-css: 压缩css
gulp-jshint: 检查js
gulp-uglify: 压缩js
gulp-concat: 合并文件
gulp-rename: 重命名文件
gulp-htmlmin: 压缩html
gulp-clean: 清空文件夹
gulp-livereload: 服务器控制客户端同步刷新(需配合chrome插件livereload及tiny-lr)
use git as a project management tool
安装git, 下载安装包会安装好 git shell 和可视化环境
http://git-scm.com/download/win
配置用户名:
git config --global user.name "your name"
git config --global user.email ""
关联一个到团队的库
git remote add origin git@github.com:markyun/my-blog.git
添加文件到仓库,添加全部文件用 . 表示
git add .
把文件提交到仓库
git commit -m " first add project file"
提交文件到团队仓库
git push -u origin master //将本地的项目提交到远程仓库中。
以上就完成了前端团队最基本的开发环境搭建和代码提交工作流程。
补充:zsmart ued team 的前端开发软件环境 (windows, linux, mac os x)
安装node.js、npm、ruby、java 基础环境
sublime text3 + 插件 用于编写前端代码
google chrome 、mozilla firefox + firebug
internet explorer 进行兼容测试和预览页面ui、动画效果和交互功能
node.js+gulp 进行前端自动化构建、js语法验证、css压缩,图片压缩等;
koala 实时编译less、sass、compass、coffeescript;
github 存储自己的代码库 、git或svn用于版本控制和团队code review
tomcat、dedeampz、mamp 进行简单运行环境演示
photoshop cc 切图 + sprites 合并小图标
xmind 画出清晰的工作或业务逻辑思维图
(未完待续...)
推荐阅读
-
用Shell脚本快速搭建Ubuntu下的Nodejs开发环境
-
Appium python自动化测试系列教程之关于appium环境的搭建教程(二)
-
Windows7下安装 Nodejs 并在 WebStorm 9.0.1 下搭建编译 LESS 环境的图文教程
-
Python + selenium自动化环境搭建的完整步骤
-
1:UI自动化测试环境的搭建 JavaAppium
-
selenium+testNG-自动化测试环境的搭建
-
从零搭建docker+jenkins+node.js自动化部署环境的方法
-
Docker环境搭建Jenkins在构建任务时控制台日志出现中文乱码的问题
-
使用gulp构建前端自动化的方法示例
-
vs code怎么搭建NodeJs的开发环境? vscode运行nodejs代码的技巧