任务创build文件/文件夹,当它们不存在于咕噜声

我试图自动化我的testing,并希望自动创build任何在src文件夹上创build的JavaScript的testing文件。 这是我的文件夹结构的细分。

js --src --sum.js --subtract.js --calculator.js --innerFolder --multiply.js --divide.js --specs 

所以从上面的文件夹结构我想要做的是创build所有的文件夹结构和文件,只有当目标文件夹中的文件不存在时 ,我这样的规格: –

 js --src --sum.js --subtract.js --calculator.js --innerFolder --multiply.js --divide.js --specs --sumSpec.js --subtractSpec.js --calculator.js --innerFolder --multiplySpec.js --divideSpec.js 

我解决这个问题的方法是观察src文件夹中的所有文件/文件夹:

 watch:{ src : { files: ['src/**/*.*'], tasks: //create files and folders on specs folders here } 

我遇到了grunt.file插件,也考虑了grunt-shell ,并使我自己的脚本来实现这一点。

但我想知道是否已经有一个更简单的方法来做到这一点。

       

网上收集的解决方案 "任务创build文件/文件夹,当它们不存在于咕噜声"

尝试复制任务以及filter属性:

 grunt.initConfig({ copy: { js: { expand: true, cwd: 'js/src', src: '**/*.js', dest: 'js/specs', filter: function(filepath) { var path = require('path'); var dest = path.join( grunt.config('copy.js.dest'), // Remove the parent 'js/src' from filepath filepath.split(path.sep).slice(2).join(path.sep) ); return !(grunt.file.exists(dest)); }, }, }, watch: { js: { files: ['js/src/**/*.js'], tasks: ['copy:js'], }, }, }); 

然后,您可以复制在编辑或运行grunt copy:js不存在的grunt copy:js