Javascript 如何在使用Grunt时检测不同文件夹中的相同文件名?

Javascript 如何在使用Grunt时检测不同文件夹中的相同文件名?,javascript,node.js,gruntjs,grunt-contrib-concat,Javascript,Node.js,Gruntjs,Grunt Contrib Concat,我需要使用grunt编写一个concat脚本。这是我的样板: ___js |____dist | |____vents | | |____carousel.js | | |____compare.js | | |____style.js |____src | |____events | | |____carousel.js | | |____compare.js | | |____styles.js | |____handlers | | |____carousel.js | | |____co

我需要使用grunt编写一个concat脚本。这是我的样板:

___js
|____dist
| |____vents
| | |____carousel.js
| | |____compare.js
| | |____style.js
|____src
| |____events
| | |____carousel.js
| | |____compare.js
| | |____styles.js
| |____handlers
| | |____carousel.js
| | |____compare.js
| | |____style.js

我如何告诉concat task在events和handlers文件夹中对具有相同名称的文件进行concat,并将每个单独的连接对放在dist/vents目录中

我也遇到过类似的问题:如果在给定的路径模式中检测到具有相同文件名的文件,我希望构建失败。我已经通过编写自定义任务解决了这个问题。您可以使用grunt.file.expand或grunt.file.recurse

也许这会对你有所帮助(这是coffeescript而不是js)

grunt.registerMultiTask“节点复制”,“检测重复的文件名”,()->
path=require('path')
dupFilenamesCounted={}
haveDuplicates=false
选择权=
cwd:this.data.cwd
grunt.file.expand(选项,this.data.src).forEach(文件路径)->
filepathParts=filepath.split(path.sep)
filename=filepathParts.slice(-1).join(path.sep)
除非dupFilenamesCounted[filename]未定义
dupFilenamesCounted[filename]。计数器++
dupFilenamesCounted[filename].filepath.push(filepath)
其他的
dupFilenamesCounted[filename]={计数器:0,文件路径:[filepath]}
对于dupFilenamesCounted的文件名
如果dupFilenamesCounted[filename]。计数器>0
grunt.log.error“Filename:“+Filename+”具有“+dupFilenamesCounted[Filename]。计数器+”重复项:“+dupFilenamesCounted[Filename]。文件路径
haveDuplicates=true
#如果此任务有错误,则返回false失败
如果有重复项,则返回false
然后定义任务:

noduplicates:
  images:
    cwd: '<%= pkg.src %>'
    src: [ 'static/**/*.{gif,png,jpg,jpeg}' ]
节点副本:
图像:
cwd:'
src:['static/***.{gif,png,jpg,jpeg}']

我也需要这个,有消息吗?