【问题标题】:How to pass dynamic config to Gruntfile.js如何将动态配置传递给 Gruntfile.js
【发布时间】:2019-07-12 16:12:00
【问题描述】:

我已经编写了将 ES6 转换为 ES5 的 grunt 任务。以下是我的 Gruntfile.js 文件

module.exports = function (grunt)
{
    require("load-grunt-tasks")(grunt);

    grunt.initConfig({
        "babel": {
            options: {
                presets: ['es2015']
            },
            dist: {
                files: [{
                  expand: true,
                  cwd: '/Users/pankajmeshram/Documents/IVWorkSpace/enfresh/resources/modules',
                  src: ['**/*.es6'],
                  dest: '/Users/pankajmeshram/Documents/IVWorkSpace/enfresh/resources/modules',
                  ext: '.js'
              }]
            }
        }
    });

    grunt.registerTask("default", ["babel"]);
};

在这个文件中,我想动态传递 cwd 和 dest 选项,以便我可以将它用于不同的项目,以及我们所有项目的通用构建。

如果之前有人从事过此工作,您可以为此任务提出一些方法或任何替代解决方案。

【问题讨论】:

    标签: javascript ecmascript-6 gruntjs babeljs transpiler


    【解决方案1】:
    module.exports = function(grunt) {
        require("load-grunt-tasks")(grunt);
    
        grunt.initConfig({
            "babel": {
                options: {
                    presets: ['es2015']
                },
                dist: {
                    files: [{
                        expand: true,
                        cwd: "<%= cwd %>",
                        src: ['**/*.es6'],
                        dest: "<%= dest %>",
                        ext: '.js'
                    }]
                }
            }
        });
    
        grunt.registerTask("dynamicConfigs", "Set Dynamic Configs", function (argName, argValue) {
            grunt.config.set(argName, argValue);
        });
    
        grunt.registerTask("default", ["dynamicConfigs:cwd:/Users/vineethgn/Documents/IVWorkSpace/enfresh/resources/modules", "dynamicConfigs:dest:/Users/vineethgn/Documents/IVWorkSpace/enfresh/resources/modules", "babel"]);
    };
    

    您可以将这些属性定义为模板,然后在调用babel 任务之前,调用新创建的dynamicConfigs 任务。 在dynamicConfigs 中,您基本上是在grunt.config 中设置键值对。 确保调用dynamicConfigs 任务时使用您要设置的参数,如上面的示例代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      相关资源
      最近更新 更多