2017-02-18 13 views
1

Я довольно новичок в Gulp, и у меня есть вопрос: следует ли устанавливать gulp-плагины (такие как gulp-sass или gulp-imagemin) локально или глобально? В примерах в Интернете люди в основном делают это локально (с опцией --save-dev). Насколько я понимаю, при этом модули хранятся в локальной папке node_modules, добавленной в локальном package.json как devDependencies и на которую можно ссылаться в локальном gulpfile.js через require(). Поэтому, если мне нужно установить те же модули для другого проекта, над которым я работаю, это может быть выполнено путем копирования package.json в папку нового проекта и ввода npm install в инструменте командной строки (после перехода в папку проекта). Хорошо.Установка плагинов gulp локально vs глобально

Но что, если я, как обычный пользователь глотка, не планирую загружать и делиться своими материалами на пространстве npm и не заинтересован в поддержке devDependencies, могу ли я в этом случае просто установить gulp-плагины глобально, как npm install -g gulp-sass? Они будут найдены через глобальный путь в моей системе? Это вариант в целом, если я не хочу беспокоиться о том, чтобы копировать package.json, запускать npm install каждый раз, когда я создаю новый проект или имею несколько копий тех же модулей, которые разбросаны на моем диске?

ответ

1

Для плагинов, которые вы используете через gulp, вам нужно установить их локально в проект. Хотя вам нужно установить gulp самостоятельно во всем мире и локально, чтобы запустить файл, а затем для проекта получить команды и функции на основе gulp.

Причина, по которой вы должны установить плагины через локальную локацию npm, так что она специфична для проекта, например, если вы затем отправили этот проект на свой сервер или хост на github, тогда вам нужно будет пойти и чтобы глобально установить все ваши пакеты снова. Если они сохранены, они существуют в вашем packages.json, это так, что когда вы идете запустить npm install, чтобы установить все пакеты для указанного проекта, npm знает, что устанавливать.

Если я могу еще прояснить что-нибудь, дайте мне знать.

+0

Да, я получаю вашу точку зрения, но я использую sass, minifiers и т. Д., Как правило, в каждом проекте - они не такие специфические, и было бы жадно устанавливать их раз и навсегда глобально для каждого проекта на моем ПК , Я не собираюсь делиться своими вещами с другими, и что обычно загружается, это просто результаты плагинов, такие как файлы * .min.css. – curveball

+0

К сожалению, 'npm install -global' не ищет модули в глобальном каталоге. Вы можете исправить это, изменив переменную среды NODE_PATH. В Linux это будет: 'export NODE_PATH =/usr/lib/node_modules' (или где бы вы ни находились в вашем глобальном каталоге): http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders – andrew196

+0

Но не рекомендуется. Модули npm обычно довольно малы. – andrew196