这似乎是grunt的grunt-contrib-copy特定问题,但实际上适用于更通用的范围。
冗余配置
我有下面的Gruntfile.js
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
copy: {
examples: {
cli: {
files: [
{ src: ['src/client.js'], dest: 'examples/client.js' }
]
},
srv: {
files: [
{ src: ['src/server.js'], dest: 'examples/server.js' }
]
},
all: { /* ATTENTION: Redundant part! */
files: [
{ src: ['src/client.js'], dest: 'examples/client.js' },
{ src: ['src/server.js'], dest: 'examples/server.js' }
]
}
},
},
});
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.registerTask('default', [...]);
grunt.registerTask('build-examples', ['copy:examples']);
};但这是多余的!
试图避免冗余
我想做这样的事情:
all: {
files: examples.cli.files.concat(examples.srv.files)
}但这是不可能的。
这里的最佳做法是什么?谢谢
发布于 2015-07-19 11:31:57
记住,这是JavaScript代码,所以您可以在JavaScript代码中做任何事情:
module.exports = function(grunt) {
// Project configuration.
var clientFiles = [
{ src: ['src/client.js'], dest: 'examples/client.js' }
];
var serverFiles = [
{ src: ['src/server.js'], dest: 'examples/server.js' }
];
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
copy: {
examples: {
cli: {
files: clientFiles
},
srv: {
files: serverFiles
},
all: {
files: clientFiles.concat(serverFiles)
}
},
},
});
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.registerTask('default', [...]);
grunt.registerTask('build-examples', ['copy:examples']);
};https://stackoverflow.com/questions/31500699
复制相似问题