Gulp常用前端流程自动化配置
前言
近期的项目全部由Grunt + LESS 转向改用Gulp + SASS 进行前端开发,也就奔着Gulp那比较好用的自定义函数而来的。
一、package.json文件配置如下:
{
"name": "your app's name",
"version": "0.1.0",
"description": "your app's description",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"your app's keywords"
],
"author": "your name",
"license": "MIT",
"repository": {
"type": "git",
"url": "your git rep address"
},
"devDependencies": {
"gulp": "^3.9.1",
"gulp-autoprefixer": "^3.1.0",
"gulp-clean": "^0.3.2",
"gulp-concat": "^2.6.0",
"gulp-jshint": "^2.0.0",
"gulp-minify-css": "^1.2.4",
"gulp-rename": "^1.2.2",
"gulp-ruby-sass": "^2.0.6",
"gulp-uglify": "^1.5.3",
"jshint": "^2.9.1"
}
}
二、gulpfile.js文件配置如下:
// 引入 gulp
var gulp = require('gulp');
var connect = require('gulp-connect'); // 引入组件
var jshint = require('gulp-jshint'), // 检查脚本
sass = require('gulp-ruby-sass'), // 编译Sass
minifycss = require('gulp-minify-css'), // css压缩
autoprefixer = require('gulp-autoprefixer'),// 自动添加css3前缀
concat = require('gulp-concat'), // 合并
uglify = require('gulp-uglify'), // js压缩
clean = require('gulp-clean'), // 清空文件夹
rename = require('gulp-rename'); // 重命名 // 检查脚本
gulp.task('jshint', function () {
var jsSrc = './src/js/*.js',
jsDst = './dist/js';
gulp.src(jsSrc)
.pipe(jshint('.jshintrc'))
.pipe(jshint.reporter('default'));
}); // 编译Sass
gulp.task('sass', function () {
var cssSrc = './src/scss/*.scss',
cssDst = './dist/css';
return sass(cssSrc, { style: 'expanded' })
.pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
.pipe(gulp.dest(cssDst))
.pipe(rename({ suffix: '.min' }))
.pipe(minifycss())
.pipe(gulp.dest(cssDst));
}); // 压缩js文件
gulp.task('jsuglify', function () {
var jsSrc = './src/js/*.js',
jsDst = './dist/js';
gulp.src(jsSrc)
.pipe(rename({ suffix: '.min' }))
.pipe(uglify())
.pipe(gulp.dest(jsDst));
}); // 合并,压缩js文件
gulp.task('jsconcat', function () {
var jsSrc = './src/js/*.js',
jsDst = './dist/js';
gulp.src(jsSrc)
.pipe(concat('all.js'))
.pipe(gulp.dest(jsDst))
.pipe(rename('all.min.js'))
.pipe(uglify())
.pipe(gulp.dest(jsDst));
}); // 清空样式、js
gulp.task('clean', function () {
gulp.src(['./dist/css', './dist/js'], { read: false })
.pipe(clean());
});
// 使用connect启动一个Web服务器 http://localhost:1988/ 或者查看自己电脑本地的IP
gulp.task('webserver', function () {
connect.server({
livereload: true,
port: 1988
});
});
// 默认任务
gulp.task('default', function () {
gulp.run('jshint', 'sass', 'jsuglify', 'webserver'); // 监听文件变化
var jsSrc = './src/js/*.js',
cssSrc = './src/scss/*.scss';
gulp.watch([jsSrc, cssSrc], function () {
gulp.run('jshint', 'sass', 'jsuglify');
});
});
三、.jshintrc文件配置如下:
{
"globals": {
"jasmine": false,
"spyOn": false,
"it": false,
"console": false,
"describe": false,
"expect": false,
"beforeEach": false,
"waits": false,
"waitsFor": false,
"runs": false
},
"node" : true,
"es5" : true,
"browser" : true,
"boss" : false,
"curly": false,
"debug": false,
"devel": false,
"eqeqeq": true,
"evil": true,
"forin": false,
"immed": true,
"laxbreak": false,
"newcap": true,
"noarg": true,
"noempty": false,
"nonew": false,
"nomen": false,
"onevar": true,
"plusplus": false,
"regexp": false,
"undef": true,
"sub": true,
"strict": false,
"white": true,
"unused": true
}
Gulp常用前端流程自动化配置的更多相关文章
- GruntJS常用前端流程自动化配置-【持续优化】
前言 近期用Grunt进行前端开发经常要用到的一些Grunt插件,用起来非常顺手. 一.package.json文件配置如下: 包括coffeescript编译为js,css加CSS3适配前缀,css ...
- 亚信UED前端流程自动化构建工具
亚信UED前端流程自动化构建工具 .wmd-input, .wmd-input:focus, #md-section-helper {font-size: 14px !important;line-h ...
- 使用Gulp实现前端构建自动化
使用Gulp实现前端构建自动化 安装 一.安装NodeJs Gulp的安装依赖于NodeJs的npm安装管理器 安装包下载地址 关于npm命令: 1. npm install <name> ...
- node和gulp实现前端工程自动化(附:gulp常用插件)
/** * 1. LESS编译 压缩 合并 * 2. JS合并 压缩 混淆 * 3. img复制 * 4. html压缩 */ // 在gulpfile中先载入gulp包,因为这个包提供了一些APIv ...
- 前端工作流程自动化——Grunt/Gulp 自动化
什么是自动化 先来说说为什么要自动化.凡是要考虑到自动化时,你所做的工作必然是存在很多重复乏味的劳作,很有必要通过程序来完成这些任务.这样一来就可以解放生产力,将更多的精力和时间投入到更多有意义的事情 ...
- Gulp构建前端自动化工作流之:常用插件介绍及使用
在对Gulp有了一个初步的了解之后,我们开始构建一个较为完整的Gulp开发环境. 本文主要分为6个段落: 1. 构建项目目录结构(Directory Structure Build) 2. 插件介绍及 ...
- 使用gulp助力前端自动化
前言 随着前端诸如webpack,rollup,vite的发展,gulp感觉似乎好像被取代了.其实并没有,只不过它从台前退居到了幕后.我们仍然可以在很多项目中看到它的身影,比如elementplus. ...
- 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)
前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...
- 前端开发自动化工作流工具,JavaScript自动化构建工具grunt、gulp、webpack介绍
前端开发自动化工作流工具,JavaScript自动化构建工具grunt.gulp.webpack介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为 ...
随机推荐
- Load Test Analyzer Overview
reference url: https://msdn.microsoft.com/en-us/library/ms404677.aspx
- 使用axis开发web service服务端
一.axis环境搭建 1.安装环境 JDK.Tomcat或Resin.eclipse等. 2.到 http://www.apache.org/dyn/closer.cgi/ws/axis/1_4下载A ...
- MyBatis中关于别名typeAliases的设置
第一种:通过在配置文件中typeAlias节点设置type的方式 <?xml version="1.0" encoding="UTF-8" ?> & ...
- 关于es5的一些新方法
1.数组方法(1)isArray在之前我们判断数组类型的数据都是用instanceof来判断的,es5新增了对数组的判断,即Array.isArray()(2)every和some这两个方法一般用于对 ...
- jvm--1.class文件结构
1.字节码(1)bytecode是构成平台无关性的基石 (2)当jvm发展到1.7-1.8的时候,jvm设计者通过,JSR-292,基本可以让其他语言运行在jvm上面. 如,Clojure , Gro ...
- 安卓ApiDemos最简单的使用方法
http://download.csdn.net/detail/ffwmxr/7401067#comment 正确使用方法:开新工程, 名字API Demos,将下载文件里的 src,res, And ...
- window.top.location.href 和 window.location.href 的区别
"window.location.href"."location.href"是本页面跳转. "parent.location.href" 是 ...
- html显示缩略小图 无失真图片
<html> <head> <title>我的图片处理</title> <style type="text/css"> ...
- docker 目录迁移
(ubuntu 12.04) 默认路径 /var/lib/docker --> /data/docker root@node1:~# service docker stop root@node ...
- 用SQL SERVER取分组数据第一条:查出每个班级的成绩第一名
create table test (id int, name ), score int, classname )); ,,'一班'); ,,'一班'); ,,'一班'); ,,'二班'); ,,'二 ...