我使用grunt-contrib的concat和uglify模块来处理一些javascript。 目前如果src/js/为空,它们仍然会创建一个(空)concat'd文件,以及缩小版本和源地图。
我想要在继续之前检测src/js/文件夹是否为空,如果是,则该任务应该跳过(不失败)。 任何想法如何做到这一点?
I'm using grunt-contrib's concat and uglify modules to process some javascript. Currently if src/js/ is empty, they will still create an (empty) concat'd file, along with the minified version and a source map.
I want to task to detect if the src/js/ folder is empty before proceeding, and if it is, then the task should skip (not fail). Any ideas how to do this?
最满意答案
解决方案可能不是最漂亮的,但可以给你一个想法。 您需要首先运行npm install --save-dev glob 。 这是基于你提到的部分Milkshake项目。
grunt.registerTask('build_js', function(){ // get first task's `src` config property and see // if any file matches the glob pattern if (grunt.config('concat').js.src.some(function(src){ return require('glob').sync(src).length; })) { // if so, run the task chain grunt.task.run([ 'trimtrailingspaces:js' , 'concat:js' , 'uglify:yomama' ]); } });比较的要点: https : //gist.github.com/kosmotaur/61bff2bc807b28a9fcfa
The solution may not be the prettiest, but could give you an idea. You'll need to run something like npm install --save-dev glob first. This is based on part of the Milkshake project you mentioned.
grunt.registerTask('build_js', function(){ // get first task's `src` config property and see // if any file matches the glob pattern if (grunt.config('concat').js.src.some(function(src){ return require('glob').sync(src).length; })) { // if so, run the task chain grunt.task.run([ 'trimtrailingspaces:js' , 'concat:js' , 'uglify:yomama' ]); } });A gist for comparison: https://gist.github.com/kosmotaur/61bff2bc807b28a9fcfa
更多推荐
发布评论