这似乎是grunt
的{{1}}特定问题,但它实际上适用于更通用的范围。
我有以下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']);
};
但这是不可能的。
这里的最佳做法是什么?感谢
答案 0 :(得分:3)
请记住这是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']);
};