gulp匹配模式

匹配符 code 匹配 不匹配 备注
* * a.b, x.y, abc, abc/ a/b.js 不匹配/,除非/出现在末尾
*.* a.b, x.y abc 匹配所有带后缀的文件
*/*/*.js a/b/c.js, x/y/z.js a/b.js, a/b/c/d.js 匹配固定层级目录
** **/*.js a.js, a/b.js, a/b/c.js 匹配所有的目录和文件
**/*.js a.js, a/b.js, a/b/c.js 匹配所有目录下的 .js 文件
a/**/z a/z, a/b/z, a/b/c/z, a/b/c/d/z
a/**b/z a/b/z, a/nb/z a/c/nb/z, ** 单独出现才能匹配多级目录
? ?.js a.js, b.js, c.js 占位符匹配,不匹配 /
a?? a.b, abc ab/ 占位符与字符搭配使用
[] [abc].js a.js, b.js, c.js ab.js, xyz.js 整个 [] 只匹配一个字符
[^abc].js
[!abc].js
x.js, y.js a.js, b.js, c.js 排除匹配字符

常见问题

build导出定义组合任务

1
2
3
4
5
6
7
8
const { series } = require('gulp');
function javascript(cb) {
// body omitted cb();
}
function css(cb) {
// body omitted cb();
}
exports.build = series(javascript, css);

导出一个任务使其成为public

1
exports.build=build;

如果不导出则是private

复制文件

1
gulp.src(fileName).pipe(gulp.dest(destination));

如果要复制所有文件使用通配符,例如*.html复制多个文件夹或文件可以定义多个任务,然后定义一个依赖它们的任务调用模块

杂项

concat连接文件,uglify压缩

rename可以直接传字符串重命名也可以传一个js对象:

1
2
3
4
5
6
{
dirname: "main/text/ciao",
basename: "aloha",
prefix: "bonjour-",
suffix: "-hola",
extname: ".md"}

1
const{ }=require('gulp')

可以取消前缀使用


series()参数直接传函数指针,如果任务注册过(exports导出)可以使用字符串,但不建议这样做


自动刷新网页

gulp-connect:

热处理先建立服务器server

执行gulp命令时传入参数

minimist

1
2
3
4
5
var minimist = require('minimist');
var options = minimist(process.argv.slice(2), {
string: "env", //命令行的参数储存在options.env中
// default: { env: process.env.NODE_ENV || "production" }
});

发布compressed js文件

uglify


控制台输入带颜色的字

nodejs输出带颜色 \033[42;30m最后还原属性\033[0m


字色编号:30黑,31红,32绿,33黄,34蓝,35紫,36深绿,37白色
背景编号:40黑,41红,42绿,43黄,44蓝,45紫,46深绿,47白色

gulp-sass

传递一个对象为参数{outputStyle:str}

嵌套输出方式 nested

展开输出方式 expanded

紧凑输出方式 compact

压缩输出方式 compressed

编写sass文件时要使用/**/注释,css不支持//