前言

近期的项目全部由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常用前端流程自动化配置的更多相关文章

  1. GruntJS常用前端流程自动化配置-【持续优化】

    前言 近期用Grunt进行前端开发经常要用到的一些Grunt插件,用起来非常顺手. 一.package.json文件配置如下: 包括coffeescript编译为js,css加CSS3适配前缀,css ...

  2. 亚信UED前端流程自动化构建工具

    亚信UED前端流程自动化构建工具 .wmd-input, .wmd-input:focus, #md-section-helper {font-size: 14px !important;line-h ...

  3. 使用Gulp实现前端构建自动化

    使用Gulp实现前端构建自动化 安装 一.安装NodeJs Gulp的安装依赖于NodeJs的npm安装管理器 安装包下载地址 关于npm命令: 1. npm install <name> ...

  4. node和gulp实现前端工程自动化(附:gulp常用插件)

    /** * 1. LESS编译 压缩 合并 * 2. JS合并 压缩 混淆 * 3. img复制 * 4. html压缩 */ // 在gulpfile中先载入gulp包,因为这个包提供了一些APIv ...

  5. 前端工作流程自动化——Grunt/Gulp 自动化

    什么是自动化 先来说说为什么要自动化.凡是要考虑到自动化时,你所做的工作必然是存在很多重复乏味的劳作,很有必要通过程序来完成这些任务.这样一来就可以解放生产力,将更多的精力和时间投入到更多有意义的事情 ...

  6. Gulp构建前端自动化工作流之:常用插件介绍及使用

    在对Gulp有了一个初步的了解之后,我们开始构建一个较为完整的Gulp开发环境. 本文主要分为6个段落: 1. 构建项目目录结构(Directory Structure Build) 2. 插件介绍及 ...

  7. 使用gulp助力前端自动化

    前言 随着前端诸如webpack,rollup,vite的发展,gulp感觉似乎好像被取代了.其实并没有,只不过它从台前退居到了幕后.我们仍然可以在很多项目中看到它的身影,比如elementplus. ...

  8. 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)

    前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...

  9. 前端开发自动化工作流工具,JavaScript自动化构建工具grunt、gulp、webpack介绍

    前端开发自动化工作流工具,JavaScript自动化构建工具grunt.gulp.webpack介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为 ...

随机推荐

  1. [Effective Sublime Text] (01) Sublime Text 3 开发环境初始化

    选择portable版本 安装git-credential-winstore.exe git config --global credential.helper cache // git config ...

  2. Python员工信息表练习

    1.用户可以模糊查询员工信息 2.显示匹配了多少条,匹配字符需要高亮显示 employee_db.txt 总经办 龚丽丽 总经理 男 -- 1月18日 汉 族 中共党员 已婚 总经办 李惠 副总经理 ...

  3. Swift3.0P1 语法指南——构造器

    原档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programmi ...

  4. 第4月第2天 nsinvocation崩溃 mvc videotrack

    1. __unsafe_unretained id result = nil; [invocation getReturnValue:&result]; return result; http ...

  5. mysql怎么查询一条记录的前一条记录和后一条记录

    上一条:select * from 表 where 数据id<@当前显示数据id order by 数据_id asc) limit 1下一条:select * from 表 where 数据i ...

  6. pic

  7. 对前台传回的list进行分割,并放在sql语句的in中

    前端数据集传回数据 var matDeptHisMonthPlanStore = Ext.data.StoreManager.lookup('matDeptHisMonthPlanStore'); m ...

  8. Integer与int的区别

    简述:int与Integer的区别: 对于它们,我们可能只是知道简单的区别.Integer是int的一个封装类,int的初始值为0,而Integer的初始值为null.但是他们之间真的仅仅只有这些区别 ...

  9. 9个基于Java的搜索引擎框架

    在这个信息相当繁杂的互联网时代,我们已经学会了如何利用搜索引擎这个强大的利器来找寻目标信息,比如你会在Google上搜索情人节如何讨女朋友欢心,你也会在百度上寻找正规的整容医疗机构(尽管有很大一部分广 ...

  10. pwd命令

    [pwd]      打印当前的工作目录             pwd==print work director 命令格式: pwd [OPTION]... 命令功能: 打印当前工作目录的全路径 命 ...