Javascript 如何引用Grunt文件中的节以避免冗余?
这可能看起来像是一个Javascript 如何引用Grunt文件中的节以避免冗余?,javascript,gruntjs,Javascript,Gruntjs,这可能看起来像是一个grunt的grunt contrib copy特定问题,但实际上它适用于更一般的范围 冗余配置 我有以下grunfile.js: module.exports = function(grunt) { // Project configuration. grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), copy: { examples: { cl
grunt
的grunt contrib copy
特定问题,但实际上它适用于更一般的范围
冗余配置
我有以下grunfile.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)
}
但这是不可能的
这里的最佳实践是什么?谢谢记住这是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']);
};
您可以在GrunFile中定义变量以消除冗余,它是一个常规的.js文件。(另外,看看grunt和相关机制)您正在编写JavaScript,而不是grunt。也就是说,再加上其他人的贡献,你应该对你所做的事充满信心。