簡體   English   中英

如何將動態配置傳遞給Gruntfile.js

[英]How to pass dynamic config to Gruntfile.js

我編寫了艱苦的任務,將ES6轉換為ES5。 以下是我的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選項,以便可以將其用於其他項目以及所有項目的通用構建。

如果以前有人對此進行處理,則可以為該任務提出一些方法或其他替代解決方案。

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任務,如上面的示例代碼中所示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM