编写gulpfile.js来二开小程序

项目上遇到同事编写一个原型的电商微信小程序,后面会有项目基于这个原型产品二次开发,因此,需要开发二开功能。先开始,我想用webpack来完成这个功能,但是后来一想,根本不用这么复杂,因为而开的过程,其实就是把源码先复制一份到合并的目录,然后把二开的代码再复制一份到合并目录,如果同名的文件自然是以二开的文件为优先,并且源码目录、二开目录和合并的目录都是相同的目录结构,并且要实时监听二开目录的文件改动,一旦有改动,改动的文件也要立即放到合并目录。
因为小程序有微信开发者工具这个好东西来开启预览的服务,因此就省去了很多的功夫,直接把开发者工具的项目目录指向二开合并的目录就可以了。具体代码如下:

gulp启动需要用的gulpfile.js代码

var gulp = require('gulp');

var watch = require('gulp-watch');

gulp.task('init', function(){//初始化任务
    gulp.src('./src/**/*')//首先将src下面的所有文件复制一份到src-merge
    .pipe(gulp.dest('./src-merge'));//这个目录是最终的代码目录,小程序发开工具需要指向这个目录
    gulp.src('./ext/**/*')//然后把ext目录下的所有文件再复制一份到src-merge如果同名的文件会覆盖掉src里面的
    .pipe(gulp.dest('./src-merge'));//最终目录
})

gulp.task('watch', function(){//这里监听文件的变化
    return watch('./ext/**/*')//设置监听的目录,监听ext下面的所有文件
    .pipe(gulp.dest('./src-merge'))//改变的文件会被导流到src-merge中
})

gulp.task('default', ['init', 'watch'])/*只输入gulp的时候,就是调用这个任务,
这个任务又是调用init 和 watch任务,分别对上面两个*/

如果有什么建议或者意见,欢迎留言讨论,如果对你有帮助,请点个赞呗。谢谢。

猜你喜欢

转载自blog.csdn.net/weixin_39378610/article/details/81140357