Как передать динамический конфиг в 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, чтобы я мог использовать их для другого проекта, а также у нас есть общая сборка для всех наших проектов.

Если кто-то работал над этим раньше, вы можете предложить какие-то способы или любое альтернативное решение этой задачи.


person M Pankaj Arun    schedule 19.02.2019    source источник


Ответы (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 с параметрами, которые вы хотите установить, как в приведенном выше примере кода.

person vineethgn    schedule 20.02.2019