前言
grunt,gulp以及webpack三个常见构建工具的对比和介绍已经很多了,这里就不再赘述。手上这个项目用了gulp进行构建,同时也是我刚刚入门学习使用gulp构建。
问题
在写gulpfile.js
的task时,一开始我是这么写的:
1 | gulp.task('clean', function(cb) { |
在shell
里执行
1 | gulp |
或者是
1 | gulp build |
始终只进行了clean
任务而不build
,对着API和一些介绍gulp的文章,怎么都找不到问题所在。
解决
接着搜到了一句话:
Make sure to return the stream so that gulp knows the clean task is asynchronous and waits for it to terminate before starting the dependent one.
由于del是异步执行的,尝试在clean
任务中返回流后就正常了:
1 | gulp.task('clean', function(cb) { |
另外在github的del项目的issues中看到一个哥们提供的解决方案,其中一个是返回流,另一个则是常见的解决方案:回调。
构建的其他方案
在学长ChiChou的技术群里,学长告诉我在这种无需大量文件操作的项目中,可以用package.json
+Makefile
进行构建,甚至可以连这都不用,直接在package.json
中的scripts中写入指令,然后npm run xxxx
执行。