Grunt Watch не работает с файловой базой, установленной в подкаталог

У меня возникла проблема, когда Grunt Watch не работает с моим подкаталогом с помощью Grunt. Вот моя настройка каталога:

/home
  --/repos
      --/common
        --/node_modules
        -- gruntfile.js
        -- package.json

И я установил базу вручную в домашний каталог в моем gruntfile:

grunt.file.setBase('../../');

Я бы хотел, чтобы мой gruntfile находился в этом каталоге для работы с другими людьми в моей команде, а не использовал несколько gruntfiles.

Запуск 'grunt' работает просто отлично. Однако, когда у меня запущен Grunt Watch, я получаю сообщение об ошибке при обновлении файлов:

Waiting...OK
>> File "repos/common/js/controllers/UserCtrl.js" changed.

grunt-cli: The grunt command line interface. (v0.1.13)

Fatal error: Unable to find local grunt.

Вот часть моего gruntfile, посвященная часам:

watch: {

  // js
  js: {
    files: [
      'js/*.js',
      'js/controllers/*.js',
      'js/services/*.js',
      'js/lib/*.js',
      'm/js/*.js',
      'm/js/controllers/*.js',
      'm/js/services/*.js',
      'm/js/lib/*.js',
      'repos/common/js/controllers/*.js',
      'repos/common/js/services/*.js',
      'repos/common/js/lib/*.js',
    ],
    tasks: ['concat']
  },

  // css
  css: {
    files: [
      'repos/common/less/*.less',
      'm/less/*.less',
      'css/*.css',
      'repos/common/css/lib/*.css',
    ],
    tasks: ['newer:less', 'newer:cssmin', 'newer:concat_css']
  }
}

Что, черт возьми, я не получаю здесь? Любая помощь будет супер оценена!


person boardlemur    schedule 13.10.2014    source источник


Ответы (1)


Вы пропустили установку модуля grunt

Модуль grunt-cli отличается от модуля grunt. Я думаю, вам следует установить grunt (это то, что подразумевается под локальным сообщением об ошибке) в локальный каталог или выше, где находится ваш gruntfile.js.

person Tuan    schedule 13.10.2014
comment
Хм. Я сделал это, но он все еще ищет мой gruntfile. Я должен уточнить, что я пытаюсь сохранить gruntfile в общем каталоге репо. Если я установлю grunt в домашний каталог, мне нужно будет сохранить там файл grunt, не так ли? Или есть способ указать его на home/repos/common/gruntfile.js? - person boardlemur; 14.10.2014
comment
Я тоже новичок в хрюканье. Я думаю, что лучше всего установить его в корне вашего приложения. Потому что многие поддеревья могут использовать его позже. Вы должны установить минимальную настройку с простой и прямой задачей, чтобы увидеть, вызывается ли grunt в любом случае. - person Tuan; 14.10.2014
comment
Ваш файл grunt может находиться в любом месте поддерева. вы должны указать путь к cli. из /root вы можете вызвать grunt /sub/tree/mytasks.js - person Tuan; 14.10.2014