Почему Grunt переходит в devDependencies?

В документации Grunt указано, что она (и любые плагины) должна быть включена в раздел devDependencies package.json. Я, вероятно, пропустил что-то очевидное, но я не понимаю, почему. Если я хочу развернуть производственную версию своего приложения, мне все равно нужно ее создать. И если я не создаю его, то зачем мне нужен Grunt?

Другими словами, представьте, что я тяну свое репо и говорю:

npm install --production

Как мне создать мое приложение, если Grunt находится в разделе devDependencies?

Ответ 1

Для чего вы используете Grunt?

Grunt обычно указывается в devDependencies, потому что даже когда вы его развертываете для производства, вам все равно придется компилировать такие вещи, как CoffeeScript, SASS и т.д.

В нашем случае это выглядит так: мы проверяем последние изменения в GitHub, а затем наши скрипты развертывания регистрируются на сервере, извлекаем последний код из мастера GitHub, запускаем npm install и затем печатаем продукцию.

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

Ответ 2

Обычно в разработке используется Grunt, он потенциально обрабатывает тестирование, предварительные процессоры таблиц стилей, javascript uglifying и т.д. Вы не будете распространять связанные с Grunt файлы как часть вашего производственного кода, вы будете распространять миниатюрный, проверенный, углецированный код.