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介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为 ...
随机推荐
- [Effective Sublime Text] (01) Sublime Text 3 开发环境初始化
选择portable版本 安装git-credential-winstore.exe git config --global credential.helper cache // git config ...
- Python员工信息表练习
1.用户可以模糊查询员工信息 2.显示匹配了多少条,匹配字符需要高亮显示 employee_db.txt 总经办 龚丽丽 总经理 男 -- 1月18日 汉 族 中共党员 已婚 总经办 李惠 副总经理 ...
- Swift3.0P1 语法指南——构造器
原档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programmi ...
- 第4月第2天 nsinvocation崩溃 mvc videotrack
1. __unsafe_unretained id result = nil; [invocation getReturnValue:&result]; return result; http ...
- mysql怎么查询一条记录的前一条记录和后一条记录
上一条:select * from 表 where 数据id<@当前显示数据id order by 数据_id asc) limit 1下一条:select * from 表 where 数据i ...
- pic
- 对前台传回的list进行分割,并放在sql语句的in中
前端数据集传回数据 var matDeptHisMonthPlanStore = Ext.data.StoreManager.lookup('matDeptHisMonthPlanStore'); m ...
- Integer与int的区别
简述:int与Integer的区别: 对于它们,我们可能只是知道简单的区别.Integer是int的一个封装类,int的初始值为0,而Integer的初始值为null.但是他们之间真的仅仅只有这些区别 ...
- 9个基于Java的搜索引擎框架
在这个信息相当繁杂的互联网时代,我们已经学会了如何利用搜索引擎这个强大的利器来找寻目标信息,比如你会在Google上搜索情人节如何讨女朋友欢心,你也会在百度上寻找正规的整容医疗机构(尽管有很大一部分广 ...
- pwd命令
[pwd] 打印当前的工作目录 pwd==print work director 命令格式: pwd [OPTION]... 命令功能: 打印当前工作目录的全路径 命 ...