#javascript #linux #node.js #gruntjs
#javascript #linux #node.js #gruntjs
Вопрос:
Я установил grunt
и grunt-cli
глобально использую sudo npm install -g grunt...
команды.
Моя рабочая папка — «/opt / web», пожалуйста, не спрашивайте почему 🙂
Проверка версии grunt внутри `/ opt / web» работает:
$ grunt --version
grunt-cli v0.1.13
Однако на самом деле я не могу запустить оттуда задачу grunt:
$ grunt
grunt-cli: The grunt command line interface. (v0.1.13)
Fatal error: Unable to find local grunt.
If you're seeing this message, either a Gruntfile wasn't found or grunt
hasn't been installed locally to your project.
Если я устанавливаю grunt локально, он затем запрашивает локальную установку всех своих зависимостей (которые уже установлены глобально (!)).
Такое поведение кажется мне странным.
Мой вопрос заключается в следующем:
Это ошибка или особенность? Является ли это по замыслу, что grunt хочет работать только с локально установленными вещами?
Ответ №1:
Это сделано специально. См. grunt-cli readme.
CLI ничего не делает, кроме поиска и запуска локальной копии grunt.
Это означает, что каждый проект может использовать версию grunt, указанную проектом и проверенную / проверенную на корректную работу. Учитывая количество критически важных вещей, которые может сделать grunt, это обещание совместимости имеет большое значение.
На сайте узла также есть хорошее сообщение в блоге, в котором немного больше говорится о местах установки модулей.
Комментарии:
1. Спасибо! Я понял это с помощью этого поста .