Следующая возможность NPM, которую мы с вами рассмотрим, это глобальные модули. Любой модуль можно поставить глобально, если добавить флаг (-g)
npm –g i express.
Как видим, не получается это сделать, потому что глобально – означает в системную директорию. Если операционная система поддерживает ограничение доступа, то, как правило, от обычного user в системную директорию я писать не имею права. Для этого, в данном случае, у меня Mac, я сделаю запуск через команду sudo. Если у вас Windows, то, скорей всего, у вас и так все работает. Там директория глобальных модулей почему-то находится внутри каталога user.
Итак, оно скачивается, ставится. Чем глобальная установка отличается от обычной?
- В первую очередь, это местом. Глобальные модули ставятся в стандартную системную директорию.
- Второе отличие это то, те binary , которые есть в свойстве bin package.json будут поставлены по системному пути. Это означает, что express’ binary я теперь могу вызвать просто вот так.
Любые дальнейшие операции с глобальными модулями осуществляют также, как с обычными, но с флагом –g:
npm –g up express
или просто
npm –g up
чтобы все модули up были глобальными, которые только стоят.
Или npm –g r express – удалить express.
Зачем вообще нужны глобальные модули? Перед тем, как об этом говорить, развеем часть заблуждения, связанную со словом «глобальный».
Глобальный – обычно означает доступный на уровне системы, доступный всем. Глобальная переменная – это та, к которой можно обратиться откуда угодно. В данном случае, слово глобальный используется по историческим причинам. Когда-то так и было, но сейчас, если модуль поставлен глобально, то это не означает, что он автоматически становится доступен всем. То есть, несмотря на то, что я поставил express глобально, если где-нибудь сделаю require(“express”), то оно модуля не найдет. Глобальный, в данном случае, означает, скорее, системный.
Основное применение глобальной установки модуля – это сделать доступным binary по системному пути. Например, есть ряд утилит, которые написаны для Node.JS, скажем, есть утилиты uglify-js, которыми сжимают js файлы. Эту утилиту я могу поставить глобально:
npm –g i uglify-js
Когда она будет стоять глобально, то я получу uglify-js по системному пути, который могу вызывать.
Таким образом, если обобщить, глобальные модули – это модули, которые используются для системных нужд. Как правило, это различные утилиты. Глобальный модуль не становится автоматически доступен везде, его можно “прилинковать” к приложению с использованием команды
npm link express.
если хотите, посмотрите и help, но это не рекомендуется.
Материал урока взят из следующего скринкаста
We are looking forward to meeting you on our website soshace.com