Локальная установка Node Grunt

Я нахожусь в процессе переделки своей системы сборки, и я читал, что node.js с grunt — это хороший способ. Я никогда не использовал ни один, и у меня есть небольшая проблема.

Проблема в том, что я хочу настроить переносимую среду сборки, которую я могу включить в систему управления версиями для своего проекта (возможно, это невозможно). Запустить работу node.js и npm не составило труда. Но каждая инструкция по установке grunt, которую я вижу, говорит об использовании флага -g с npm, который устанавливает его глобально. Поскольку мне нужна полностью переносимая среда, я попытался отключить это, но не могу заставить работать хрюканье.

Я что-то упустил, или то, что я пытаюсь сделать, невозможно?


person Dominic P    schedule 03.04.2013    source источник
comment
Вместо этого я использовал ant для этого проекта. Я хотел бы, чтобы ворчание работало, но я не мог позволить себе больше времени на проект, и я смог запустить муравья намного быстрее в своей среде.   -  person Dominic P    schedule 03.04.2013


Ответы (4)


Взгляните на http://gruntjs.com/getting-started.

Недавно Grunt был разделен на локальную зависимость проекта (grunt) и средство запуска из командной строки (grunt-cli). Именно последний должен быть установлен глобально.

В качестве дополнительной подсказки, чтобы убедиться, что вы можете использовать свои сборки везде: убедитесь, что вы сохранили все зависимости в package.json, используя параметры --save и --save-dev при использовании npm install. Дополнительная информация: https://npmjs.org/doc/install.html

person Ruben Vermeersch    schedule 03.04.2013
comment
Спасибо за полезную информацию. Я просмотрел документы, на которые вы ссылались. Я заметил, что они по-прежнему требуют глобальной установки grunt-cli. Есть ли способ обойти это? - person Dominic P; 03.04.2013
comment
Там немного нужно обойти это. Все, что делает grunt-cli, — это запускает версию grunt, встроенную в ваш проект. Считай это условностью. В зависимости от этого ваш проект не станет менее переносимым. - person Ruben Vermeersch; 04.04.2013
comment
Вы можете установить grunt-cli локально и использовать скрипт npm для запуска рабочего процесса. См. нижнюю часть страницы: npmjs.org/package/grunt-cli. - person M69; 27.01.2014

Вы можете использовать локальное grunt без глобальной (-g) установки grunt-cli, вызвав:

node node_modules/grunt-cli/bin/grunt --version

Конечно, сначала вам нужно установить его в своем проекте локально и иметь версию grunt выше 0.3; Например:

npm install grunt-cli
npm install [email protected]

Или добавьте их оба в свой package.json и позвоните

npm install  

Это также должно помочь, когда вы просто не можете установить какой-либо пакет глобально, как я описал в https://stackoverflow.com/a/39046355/2201879

person tomajar    schedule 19.08.2016

См. https://www.npmjs.com/package/grunt-cli#installing-grunt-cli-locally:

Локальная установка grunt-cli

Если вы предпочитаете идиоматический метод Node.js для начала работы с проектом (npm install && npm test), установите grunt-cli локально с помощью npm install grunt-cli --save-dev. Затем добавьте скрипт в ваш package.json для запуска соответствующей команды grunt: "scripts": { "test": "grunt test" }. Теперь npm test будет использовать локально установленный исполняемый файл ./node_modules/.bin/grunt для запуска ваших команд Grunt.

Чтобы узнать больше о скриптах npm, посетите документацию по npm:
https://docs.npmjs.com/misc/scripts.

person splintor    schedule 27.07.2016

Вот код командной строки, который установит последнюю версию Grunt в папку вашего проекта, добавив ее в ваши devDependencies:

npm install grunt --save-dev

То же самое можно сделать для gruntplugins и других узловых модулей. Как видно из следующего примера установки модуля задачи JSHint:

npm install grunt-contrib-jshint --save-dev

Ознакомьтесь с текущими доступными плагинами grunt для установки и использования в вашем проекте на странице плагинов.

Не забудьте зафиксировать обновленный файл package.json вместе с вашим проектом, когда закончите!

person Sarabjit Singh    schedule 07.12.2016