Nano Hash - криптовалюты, майнинг, программирование

Запуск задачи grunt в одном файле Grunt из другого

У меня есть Gruntfile в корне моего проекта. У меня также установлен jQuery через Bower в каталоге app/components/jquery.

В рамках моего Gruntfile я хотел бы запустить некоторые команды в jQuery Gruntfile для создания пользовательской версии библиотеки.

Как мне добраться до их Gruntfile из моего?

23.05.2013

Ответы:


1

Вы можете создать простую задачу, которая порождает grunt в нужной вам папке:

grunt.registerTask('run-grunt', function () {
    var done = this.async();
    grunt.util.spawn({
        grunt: true,
        args: [''],
        opts: {
            cwd: 'app/components/jquery'
        }
    }, function (err, result, code) {
        done();
    });
});
27.05.2013
  • Это почти работает.... Что нужно для этого, чтобы показать результат задачи. Допустим, у меня есть задача karma:unit, которая запускает мои модульные тесты с помощью watch:true. Я хотел бы иметь возможность запустить его и увидеть вывод на экране. 16.05.2014
  • Если вы хотите увидеть его в потоковом режиме, вам придется запустить собственный дочерний процесс nodejs.org/api/child_process. .html и реагировать на события данных - в противном случае просто вывести результат в консоль console.log(result.stdout); 25.06.2020

  • 2

    Если вы хотите получить вывод консоли, основываясь на ответе @Sindre, все, что вам нужно сделать, это записать в консоль результат.stdout.

    grunt.registerTask('run-grunt', function() {
        var cb = this.async();
        grunt.util.spawn({
            grunt: true,
            args: ['clean', 'copy:fonts'],
            opts: {
                cwd: 'bower_components/bootstrap'
            }
        }, function(error, result, code) {
            console.log(result.stdout);
            cb();
        });
    });
    
    15.08.2014
  • Работает отлично, хотя, конечно, вывод буферизуется. 04.09.2014

  • 3

    Основываясь на ответе @Sindre и @Stephen, мы также можем получить вывод консоли «в режиме реального времени» без буферизации:

    grunt.registerTask('run-grunt', function() {
      var cb = this.async();
      var child = grunt.util.spawn({
          grunt: true,
          args: ['clean', 'copy:fonts'],
          opts: {
              cwd: 'bower_components/bootstrap'
          }
      }, function(error, result, code) {
          cb();
      });
    
      child.stdout.pipe(process.stdout);
      child.stderr.pipe(process.stderr);
    });
    
    10.11.2015
  • Хорошо работает, в том числе и в Visual Studio Task Runner Explorer. Теперь я могу запускать задачи из gruntfile Bootstrap через gruntfile в корне проекта (что нужно для Task Runner Explorer) 26.10.2016

  • 4

    не знаю, сработает ли это, но вы можете попробовать. ваш jQuery Gruntfile экспортируется через «module.exports». это должно означать, что вы можете потребовать его в своем коде и использовать его.

    var jQueryGrunt = require('path-to-jquery-gruntfile');
    jQueryGrunt.task.run(['your-task-you-want-to-run']);
    

    будет интересно услышать, получится ли...

    23.05.2013
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..