关于gulp打包发布的疑问

小蚊酱
  • 4.8k

最近在学习使用gulp对前端进行打包发布,遇到了几个问题,需要请教一下各位大大。

1.怎样对不同的文件分别进行打包,比如js文件夹里有indexdetail两个文件夹,我想对这两个分别打包,然后我把indexdetail写进配置文件里,程序就读取配置文件,然后分别生成index.abc123.min.jsdetail.def456.min.js(中间的是md5摘要)与map.json

现在我使用的是gulp-rev-all,但是这个插件不能不能同时对多个文件夹进行打包,如果我写多个gulp.src的话,扩展性就不好了,以后有新的文件夹时,需要每次修改gulpfile.js。以下是我写的一个简单的程序:

var revAll = new RevAll({
    hashLength : 16
}),

return gulp.src('./css/index/**/*.css')
    .pipe(concat('index.css'))
    .pipe(cache('caching'))
    .pipe(css_minify())
    .pipe(revAll.revision())
    .pipe(gulp.dest('./build'))
    .pipe(revAll.manifestFile())
    .pipe(gulp.dest('./rev'))
    .pipe(revAll.versionFile())
    .pipe(gulp.dest('./rev'))

2.读取git或hg的tag号
假如上面的已经成功了,生成了一个map.json,可是我想每次是非覆盖式发布,发布时都会根据当前git的tag生成一个比如map-1.0.0.json这样的配置文件,git最新的tag是什么,发布时就生成一个什么样的map.json配置文件;然后php那边再使用gulp 1.0.0,读取这个map-1.0.0.json的配置文件,替换js和css路径。

git中.git/refs/的tag目录里,文件名就是tag号,内容是当时打tag时的hash标识,我是用fs.readdir读取这个目录里所有的文件名:['1.0.0', '1.0.1', '1.1.0', '1.2.0'],然后取这个数组的最后一个作为最新的tag号,可是后来发现一个问题:1.11.01.2.0小,在数组里,排在1.2.0的前面,肯定是取不到1.11.0的这个tag号的,有没有更好,更准确的方式获取当前最新的tag。

谢谢各位

回复
阅读 4.3k
3 个回答
✓ 已被采纳

第一个问题,参数是可以写['路径1','路径2']的啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏