Почему grunt.loadNpmTask('grunt-contrib-jshint') вызывает ошибку в Sails.js?

Это кажется довольно простым, но я не могу отладить эту ошибку. Я добавил этот код в свой Sails API как /tasks/config/jshint.js

module.exports = function(grunt) {
  console.log(1);
  grunt.config.set('jshint', {
    files: {
      src: ['api/services/*.js', 'api/policies/*.js', 'api/controllers/*.js']
    }
  });
  console.log(2);
  grunt.loadNpmTask('grunt-contrib-jshint');
  console.log(3);
};

Теперь, когда я выполняю любую задачу, я получаю сообщение об ошибке (но старые задачи все еще успешно выполняются).

C:\dev\fo-rest-api>grunt aglio
1
2
Loading "Gruntfile.js" tasks...ERROR
>> TypeError: undefined is not a function

Running "aglio:your_target" (aglio) task
...
Done, without errors.

Когда я запускаю задачу jshint, я получаю ту же ошибку загрузки, и задача отменяется.

C:\dev\fo-rest-api>grunt jshint
1
2
Loading "Gruntfile.js" tasks...ERROR
>> TypeError: undefined is not a function
Warning: Task "jshint" not found. Use --force to continue.

Aborted due to warnings.

C:\dev\fo-rest-api>

Несколько других заметок:

  1. С помощью --force только изменяет формулировку сообщения об ошибке.
  2. grunt-contrib-jshint, кажется, успешно установлен в / node_modules (я все удалил и перезапустил npm install чтобы быть уверенным.
  3. Я запускаю это на Windows, если это имеет значение. Я попытался открыть командную строку как обычный пользователь и как администратор.
  4. Я пытался закомментировать loadNpmTask строка, чтобы увидеть, загрузит ли паруса это автоматически, но все еще получил Warning: Task "jshint" not found.

Спасибо за любые подсказки, которые вы могли бы иметь.

1 ответ

Ответ был довольно простым. Я как-то удалил s в конце grunt.loadNpmTasks, Когда я добавил его обратно, все работало хорошо.

Хотелось бы, чтобы была какая-то подсветка синтаксиса для общих пакетов, таких как grunt, которые бы идентифицировали этот тип опечатки...

Другие вопросы по тегам