Подтвердить что ты не робот

Локально установлены по сравнению с глобально установленными модулями NPM

В моем файле package.json у меня есть указатель в качестве зависимости. После запуска npm install bower устанавливается локально. Когда я пытаюсь запустить bower после его установки локально, я получаю ошибку

"bower" is not recognized as an internal or external command."

Кажется, единственный способ разрешить это - установить сервер в глобальном масштабе. Зачем мне это делать? Если в моем проекте содержится локальная копия bower, почему wont node использовать его?

Запуск окон 7

4b9b3361

Ответ 1

Установка локально делает доступным для текущего проекта колокольчик (где он хранит все модули node в node_modules). Обычно это полезно только для использования такого модуля var module = require('module'); Он не будет доступен как команда , которую оболочка может разрешить, пока вы не установите ее глобально npm install -g module, где npm будет устанавливать ее в место где ваша переменная пути разрешит эту команду .

Изменить: Эта документация объясняет это довольно подробно.

Ответ 2

Вы можете выполнить свой локальный экземпляр, введя строку ниже в cmd:

node_modules/bower/bin/bower <bower args>

Ответ 3

Обычно вы устанавливаете модули NPM глобально, если хотите, чтобы они были включены в ваш путь для запуска из командной строки. Поскольку он локально установлен, вам придется запустить его из папки node_modules.

Ответ 4

Мы используем PHP и JavaScript, поэтому у нас есть композитор и npm.

Каждый из проектов, над которыми мы работаем, имеет разные пакеты как для времени исполнения пакета, так и для инструментов build/dev.

Поскольку в каждом проекте существуют ограничения по версии, установка глобальной версии пакета x (которая будет запущена из командной строки), вызвала бы у нас проблемы, мы устанавливаем все инструменты в каждом пакете. Гораздо проще определить в соответствующих файлах composer.json/package.json.

Но запуск инструментов CLI - это боль, если вам нужно постоянно добавлять дополнительный путь к команде.

С этой целью мы рекомендуем команде, чтобы следующие пути были добавлены в ваш $PATH в соответствующем .bashrc(или эквиваленте):

./vendor/bin:./node_modules/.bin

(EDIT: для Windows пути будут .\vendor\bin;.\node_modules\.bin;)

Итак, хотя в проекте X у нас есть доступ к инструментам CLI для этого проекта. Переключитесь на проект Y, и мы получим инструменты для проектов.

Конечно, вы собираетесь получать дубликаты, но каждый проект поддерживается разными командами (а некоторые из них находятся в нескольких командах), так что опять-таки наличие одной версии в глобальной установке является проблемой.