【前端】我的Gulp配置
2. gulp + browserify
/**
* File Name: gulpfile.js
*/
// 引入 gulp
var gulp = require('gulp');
// 引入组件
// 保证在当前项目目录下曾经运行过:
// npm install gulp-uglify gulp-rename gulp-babel babel-preset-es2015 ...... --save-dev
// var jshint = require('gulp-jshint');
var babel = require("gulp-babel");
var rename = require('gulp-rename');
var coffee = require('gulp-coffee');
var gutil = require('gulp-util');
var stylus = require('gulp-stylus');
var browserify = require('browserify');
// var babelify = require('babelify');
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
var sourcemaps = require('gulp-sourcemaps');
var notify = require('gulp-notify');
// 把src/script下的所有coffee逐个编译为js, 放在temp/script下
gulp.task('coffee', function() {
gulp.src('./src/script/**/*.coffee')
.pipe(coffee({bare: true}).on('error', gutil.log))
.pipe(babel({presets: ['es2015']}))
.pipe(gulp.dest('./temp/script'))
});
gulp.task('stylus', function() {
gulp.src('./src/style/*.styl')
.pipe(stylus())
.pipe(gulp.dest('./public/'));
});
gulp.task('browserify', function() {
browserify({
entries: ['./temp/script/main.js'],
debug: true, // 告知Browserify在运行同时生成内联sourcemap用于调试
})
// .transform("babelify", {presets: ["es2015"]})
.bundle()
.pipe(source('bundle.js'))
.pipe(buffer()) // 缓存文件内容
.pipe(sourcemaps.init({loadMaps: true})) // 从 browserify 文件载入 map
.pipe(sourcemaps.write('.')) // 写入 .map 文件
.pipe(gulp.dest('public'))
.pipe(notify({ message: 'browserify task complete' }));
})
// 监视文件的变化
gulp.task('watch', ['coffee', 'browserify', 'stylus'], function(){
gulp.watch('./src/script/*.coffee', ['coffee'])
gulp.watch('./src/style/*.styl', ['stylus'])
gulp.watch('./temp/script/*.js', ['browserify'])
});
// 默认任务
gulp.task('default', ['coffee', 'browserify', 'stylus', 'watch']);
1.
/**
* File Name: gulpfile.js
*/
// 引入 gulp
var gulp = require('gulp');
// 引入组件
// 保证在当前项目目录下曾经运行过:
// npm install gulp-jshint gulp-concat gulp-uglify gulp-rename gulp-babel babel-preset-es2015 ...... --save-dev
var jshint = require('gulp-jshint');
var babel = require("gulp-babel");
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var coffee = require('gulp-coffee');
var gutil = require('gulp-util');
var stylus = require('gulp-stylus');
gulp.task('coffee', function() {
gulp.src('./src/script/*.coffee')
.pipe(coffee({bare: true}).on('error', gutil.log))
.pipe(babel({presets: ['es2015']}))
.pipe(concat('all.js'))
// .pipe(rename('all.js'))
.pipe(gulp.dest('./public')) // distribution
.pipe(uglify())
.pipe(rename('all.min.js'))
.pipe(gulp.dest('./public')); // distribution
});
gulp.task('stylus', function () {
gulp.src('./src/style/*.styl')
.pipe(stylus())
.pipe(gulp.dest('./public/'));
});
// // 语法检查
// gulp.task('jshint', function() {
// gulp.src('./js/*.js')
// .pipe(jshint())
// .pipe(jshint.reporter('default'));
// });
// 监视文件的变化
gulp.task('watch', ['coffee', 'stylus'], function(){
gulp.watch('./src/script/*.coffee', ['coffee'])
gulp.watch('./src/style/*.styl', ['stylus'])
});
// 默认任务
gulp.task('default', ['coffee', 'stylus', 'watch']);
【前端】我的Gulp配置的更多相关文章
- 前端构建大法 Gulp 系列 (四):gulp实战
前端构建大法 Gulp 系列 (一):为什么需要前端构建 前端构建大法 Gulp 系列 (二):为什么选择gulp 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gulp专家 前 ...
- 前端构建大法 Gulp 系列 (二):为什么选择gulp
系列目录 前端构建大法 Gulp 系列 (一):为什么需要前端构建 前端构建大法 Gulp 系列 (二):为什么选择gulp 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gul ...
- 前端自动化工具gulp自动添加版本号
之前,我介绍了学习安装并配置前端自动化工具Gulp,觉得gulp确实比grunt的配置简单很多,于是我决定再深入学习一下gulp,就去网上查了资料,发现gulp还可以自动添加版本号,这个功能就为我平时 ...
- 前端构建之gulp与常用插件
gulp是什么? http://gulpjs.com/ 相信你会明白的! 与著名的构建工具grunt相比,有什么优势呢? 易于使用,代码优于配置 高效,不会产生过多的中间文件,减少I/O压力 易于学习 ...
- (转载)前端构建工具gulp使用
前端构建工具gulp使用 前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gulp中 ...
- 前端构建工具gulp
前端构建工具gulp使用 前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gul ...
- 前端构建之gulp与常用插件(转载)
原博主:幻天芒 原文地址:http://www.cnblogs.com/humin/p/4337442.html gulp是什么? http://gulpjs.com/ 相信你会明白的! 与著名的构建 ...
- 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gulp专家
系列目录 前端构建大法 Gulp 系列 (一):为什么需要前端构建 前端构建大法 Gulp 系列 (二):为什么选择gulp 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gul ...
- 前端构建大法 Gulp 系列 (一):为什么需要前端构建
系列目录 前端构建大法 Gulp 系列 (一):为什么需要前端构建 前端构建大法 Gulp 系列 (二):为什么选择gulp 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gul ...
- (转)前端构建工具gulp入门教程
前端构建工具gulp入门教程 老婆婆 1.8k 2013年12月30日 发布 推荐 10 推荐 收藏 83 收藏,20k 浏览 本文假设你之前没有用过任何任务脚本(task runner)和命令行工具 ...
随机推荐
- Asp.net 加载事件(转载)
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu ...
- 什么是ValueStack
转载自:http://www.cnblogs.com/zyw-205520/archive/2012/09/12/2681346.html Strut2的Action类通过属性可以获得所有相关的值,如 ...
- .net DropDownList静态联动
1.前台 <span id="spnClient" style="margin-left: 30px; margin-top: 10px"> < ...
- 如何消除MyEclipse导入jQuery库后出现的错误标记
由于MyEclipse提供比较严谨的js校验功能,因此jQuery等前端框架导入到MyEclipse后均会提示错误,比较难看,如果要将校验去掉可以遵循下面步骤:1.点击菜单“MyEclipse”-&g ...
- JUnit操作指南-批量执行单元测试(将多个测试类捆绑在一起执行)
相关链接:https://github.com/junit-team/junit4/wiki/Aggregating-tests-in-suites
- 移动Web开发调研
背景 在移动互联网浪潮下,移动设备普及,对配置需要考虑移动端设备可访问性.Web作为最贴近用户的配置手段,面向从PC端传统页面,向移动端页面的转型. 概念 PC Web: 面向传统PC电脑的浏览器开发 ...
- cs
cs <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...
- ES5 Objece.creat实现继承
Object.create() Object.create(proto [, propertiesObject ]) 是E5中提出的一种新的对象创建方式,第一个参数是要继承的原型,如果不是一个子函数, ...
- zabbix通过第三方插件percona监控mysql数据库
zabbix通过第三方插件percona监控mysql数据库 ...
- My97DatePicker日期插件
My97DatePicker是一款优秀的日期插件,它可以很方便地实现各种日期选择效果,博得广大IT开发人员的青睐. 下面来讲讲它的常用功能及设置方法. 方法/步骤 先来最简单的配置方法: (1)下 ...