由于 grunt 配置只是 json,您可以使用 grunt 模板并将您的文件作为配置的属性。
uglifyFiles: {
vendor: {
// this name should change based on the environment
'dest/vendor-output.js': ['src/vendor-input1.js', 'src/vendor-input2.js']
},
custom: {
'dest/custom-output.js': ['src/custominput1.js', 'src/custominput2.js']
}
},
uglify: {
production: {
options: {
compress: true
},
files: '<%= uglifyFiles %>'
},
development: {
options: {
compress: false,
beautify: true
},
files: '<%= uglifyFiles %>'
}
}
http://gruntjs.com/configuring-tasks#templates
对不起,我不太明白这个问题
如果生产甚至可以有目的地名称
custom-output.min.js 会更理想。
您能否提供更多信息,或者以上是您想要实现的目标?
编辑
似乎您正在尝试做的是将重复部分从 DRY 中取出,因为您实际上希望每个代码都略有不同。它可以完成,但不能在 json 中完成,您需要使用 js 并使用括号表示法来创建目标作为其键。我认为一个更简单的方法,以及像这样设置 grunt 的目的是执行以下操作。
vendorUglifyFiles: ['src/vendor-input1.js', 'src/vendor-input2.js'],
customUglifyFiles: ['src/custominput1.js', 'src/custominput2.js'],
uglify: {
production: {
options: {
compress: true
},
files: {
vendor: {
'dest/vendor.min.js': '<%= vendorUglifyFiles %>'
},
custom: {
'dest/custom.min.js': '<%= customUglifyFiles %>'
}
}
},
development: {
options: {
compress: false,
beautify: true
},
files: {
vendor: {
'dest/vendor.js': '<%= vendorUglifyFiles %>'
},
custom: {
'dest/custom.js': '<%= customUglifyFiles %>'
}
}
}
}
编辑:11-08-2016,15:12
删除了引发 indexOf 错误的级别:
vendorUglifyFiles: ['src/vendor-input1.js', 'src/vendor-input2.js'],
customUglifyFiles: ['src/custominput1.js', 'src/custominput2.js'],
uglify: {
production: {
options: {
compress: true
},
files: {
'dest/vendor.min.js': '<%= vendorUglifyFiles %>',
'dest/custom.min.js': '<%= customUglifyFiles %>'
}
},
development: {
options: {
compress: false,
beautify: true
},
files: {
'dest/vendor.js': '<%= vendorUglifyFiles %>',
'dest/custom.js': '<%= customUglifyFiles %>'
}
}
}
这就是诀窍。