Это на самом деле по дизайну. Из блога Node.js< /а>:
В общем, эмпирическое правило таково:
1. Если вы устанавливаете что-то, что хотите использовать в своей программе, используя require('whatever'), установите это локально, в корень вашего проекта.
2. Если вы устанавливаете что-то, что вы хотите использовать в своей оболочке, в командной строке или что-то еще, установите это глобально, чтобы его двоичные файлы попали в вашу переменную окружения PATH.
для вас важно устанавливать зависимости проекта локально, так как вы не можете гарантировать, что то, что установлено глобально на вашей машине, может быть доступно на машине развертывания. Правда, вы можете управлять обеими машинами, или они могут быть на самом деле одной и той же машиной, но этот случай никогда не гарантируется.
Кроме того, у вас нет ничего необычного в том, что у вас есть проекты, которые полагаются на определенную версию npm, для которой вы, возможно, установили глобальное обновление, нарушая работу проекта, которому требовалась более старая версия. Изоляция является ключом к поддержанию работоспособности проектов.
если вам ДЕЙСТВИТЕЛЬНО нужно поддерживать только одну копию, вы можете использовать символические ссылки. npm link globalnpm
Установите его глобально, а затем npm link coffee-script или npm link express (если вы используете платформу, поддерживающую символические ссылки). Затем вам нужно только обновить глобальную копию, чтобы также обновить все символические ссылки.
Обратите внимание, что опция символической ссылки действительно актуальна только для проектов, инициализированных вручную; такие генераторы, как Yeoman, всегда будут использовать локальные, поскольку они следуют структуре.
person
Claies
schedule
02.12.2014