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。也就是说,再加上其他人的贡献,你应该对你所做的事充满信心。