Gruntjs 为不可多任务的grunt插件创建两种配置

Gruntjs 为不可多任务的grunt插件创建两种配置,gruntjs,Gruntjs,我使用一个名为grunt的包,显然,它不支持多任务 grunt.initConfig({ pkg:grunt.file.readJSON('package.json'), 预处理:{ 选项:{ 背景:{ ENV:grunt.option('ENV')| |'prod' }, }, 来自_dir的所有_:{ src:“***”, cwd:'src/', 目的地:“src”, 扩展:正确 } }, }) 现在我想执行两次preprocess,一次从src目录执行,一次从dist目录执行。我应该如何

我使用一个名为grunt的包,显然,它不支持多任务

grunt.initConfig({
pkg:grunt.file.readJSON('package.json'),
预处理:{
选项:{
背景:{
ENV:grunt.option('ENV')| |'prod'
},
},
来自_dir的所有_:{
src:“***”,
cwd:'src/',
目的地:“src”,
扩展:正确
}
},
})
现在我想执行两次
preprocess
,一次从
src
目录执行,一次从
dist
目录执行。我应该如何配置此软件包来实现这一点

我尝试过这种配置

grunt.initConfig({
pkg:grunt.file.readJSON('package.json'),
预处理:{
第一:{
选项:{
背景:{
ENV:grunt.option('ENV')| |'prod'
},
},
来自_dir的所有_:{
src:“***”,
cwd:'src/',
目的地:“src”,
扩展:正确
}
},
第二:{
选项:{
背景:{
ENV:grunt.option('ENV')| |'prod'
},
},
来自_dir的所有_:{
src:“***”,
cwd:'dist/',
目的地:“距离”,
扩展:正确
}
}
}
})
然后执行
grunt预处理:first
。但是,它不起作用:


是的,您是对的,
预处理
只是一个任务,因此不允许定义多个任务

您需要创建另一个自定义任务,动态配置
预处理任务,然后运行它

例如:

grunfile.js

module.exports=函数(grunt){
loadNpmTasks('grunt-preprocess');
grunt.initConfig({
pkg:grunt.file.readJSON('package.json'),
预处理:{
选项:{
背景:{
ENV:grunt.option('ENV')| |'prod'
},
},
来自_dir的所有_:{
src:“***”,
cwd:'src/',
目的地:“src”,
扩展:正确
}
},
// ...
});
//自定义任务动态配置并运行“预处理”任务。
registerTask('preprocess\u dist',function(){
grunt.config.set('preprocess.all_from_dir.cwd','dist/');
grunt.config.set('preprocess.all_from_dir.dest','dist');
run(['preprocess']);
});
registerTask('prepreprocesseath',['preprocess','preprocess_dist']);
};
跑步:

通过CLI运行以下单个命令以执行两次
preprocess
任务,一次从
src
目录执行,一次从
dist
目录执行:

grunt preprocessBoth
说明:

  • 名为
    preprocess\u dist
    的自定义任务动态配置
    cwd
    dest
    属性的值,分别将它们设置为
    'dist/'
    'dist'
    。这是通过以下方法完成的
  • 然后通过该方法运行任务
  • 最后一行代码,内容如下:

    grunt.registerTask('prepreprocesseath',['preprocess','preprocess_dist']);
    
    创建一个名为
    preprepreduce
    的任务,并将以下两个任务添加到:

    • 预处理
    • preprocess\u dist
  • 运行
    grunt预处理时发生的基本情况是:

    • preprocess
      任务使用
      src
      目录中的文件运行
    • 然后,自定义
      preprocess\u dist
      任务使用
      dist
      目录中的文件运行
  • 如果愿意,还可以通过CLI独立运行每个任务,即:

    grunt预处理

    grunt预处理区


  • 是的,您是对的,
    预处理
    只是一个任务,因此不允许定义多个任务

    您需要创建另一个自定义任务,动态配置
    预处理任务,然后运行它

    例如:

    grunfile.js

    module.exports=函数(grunt){
    loadNpmTasks('grunt-preprocess');
    grunt.initConfig({
    pkg:grunt.file.readJSON('package.json'),
    预处理:{
    选项:{
    背景:{
    ENV:grunt.option('ENV')| |'prod'
    },
    },
    来自_dir的所有_:{
    src:“***”,
    cwd:'src/',
    目的地:“src”,
    扩展:正确
    }
    },
    // ...
    });
    //自定义任务动态配置并运行“预处理”任务。
    registerTask('preprocess\u dist',function(){
    grunt.config.set('preprocess.all_from_dir.cwd','dist/');
    grunt.config.set('preprocess.all_from_dir.dest','dist');
    run(['preprocess']);
    });
    registerTask('prepreprocesseath',['preprocess','preprocess_dist']);
    };
    
    跑步:

    通过CLI运行以下单个命令以执行两次
    preprocess
    任务,一次从
    src
    目录执行,一次从
    dist
    目录执行:

    grunt preprocessBoth
    
    说明:

  • 名为
    preprocess\u dist
    的自定义任务动态配置
    cwd
    dest
    属性的值,分别将它们设置为
    'dist/'
    'dist'
    。这是通过以下方法完成的
  • 然后通过该方法运行任务
  • 最后一行代码,内容如下:

    grunt.registerTask('prepreprocesseath',['preprocess','preprocess_dist']);
    
    创建一个名为
    preprepreduce
    的任务,并将以下两个任务添加到:

    • 预处理
    • preprocess\u dist
  • 运行
    grunt预处理时发生的基本情况是:

    • preprocess
      任务使用
      src
      目录中的文件运行
    • 那么习俗呢<