Как я могу запустить задание для ворчания из задачи? - программирование
Подтвердить что ты не робот

Как я могу запустить задание для ворчания из задачи?

Я создал новую задачу grunt, и в ней я хочу использовать grunt-contrib-concat, чтобы объединить несколько файлов вместе.

Я просмотрел документы, но я не нашел ничего, что намекало на возможность сделать это. Это кажется тривиальным прецедентом, поэтому я, вероятно, просто что-то искал.

Обновление 1:

Я также хочу иметь возможность настроить эту задачу из моей пользовательской задачи.

Например, я создаю список файлов в моей настраиваемой задаче. После того, как у меня есть этот список, я хочу передать их в задание concat. Как я могу это сделать?

Я хотел бы иметь возможность сделать что-то вроде этого.

grunt.task.run('concat', { src: ['file1','file2'], dest: 'out.js'})

Обновление 2:

Чтобы достичь того, что я хочу, мне нужно вручную настроить задачу grunt. Вот пример, который показал мне то, что я хотел.

https://github.com/gruntjs/grunt-contrib/issues/118#issuecomment-8482130

4b9b3361

Ответ 1

Здесь приведен пример ручной настройки задачи в задаче, а затем ее запуска.

https://github.com/gruntjs/grunt-contrib/issues/118#issuecomment-8482130

 grunt.registerMultiTask('multicss', 'Minify CSS files in a folder', function() {
        var count = 0;
        grunt.file.expandFiles(this.data).forEach(function(file) {
            var property = 'mincss.css'+count+'.files';
            var value = {};
            value[file] = file;
            grunt.config(property, value);
            grunt.log.writeln("Minifying CSS "+file);
            count++;
        });
        grunt.task.run('mincss');
    });

Ответ 2

От https://github.com/gruntjs/grunt/wiki/Creating-tasks

grunt.registerTask('foo', 'My "foo" task.', function() {
  // Enqueue "bar" and "baz" tasks, to run after "foo" finishes, in-order.
  grunt.task.run('bar', 'baz');
  // Or:
  grunt.task.run(['bar', 'baz']);
});

Ответ 3

спасибо to Arron, который указал нам в правильном направлении на его собственный вопрос. Файл grunt.config является ключом из приведенного выше примера. Эта задача переопределит свойство src задачи браузера.

Определение задачи:

  grunt.registerTask('tests', function (spec) {

    if (spec) {
      grunt.config('browserify.tests.src', spec);
    }

    grunt.task.run(['jshint', 'browserify:tests', 'jasmine']);

  }); 

Задание задачи:

grunt tests

или

grunt tests:somewhere/specPath.js

Ответ 4

Если вы чувствуете себя ленивым, я закончил публикацию модуля npm, который перенаправляет конфиги из вашей задачи в подзадачу, которую вы хотите запустить:

https://www.npmjs.org/package/extend-grunt-plugin