868d4746549e43a4966d9bffb8677889

Следующая возможность NPM, которую мы с вами рассмотрим, это глобальные модули. Любой модуль можно поставить глобально, если добавить флаг (-g)

npm –g i express.

Как видим, не получается это сделать, потому что глобально – означает в системную директорию. Если операционная система поддерживает ограничение доступа, то, как правило, от обычного user в системную директорию я писать не имею права. Для этого, в данном случае, у меня Mac, я сделаю запуск через команду sudo. Если у вас Windows, то, скорей всего, у вас и так все работает. Там директория глобальных модулей почему-то находится внутри каталога user.

Итак, оно скачивается, ставится. Чем глобальная установка отличается от обычной?

  1. В первую очередь, это местом. Глобальные модули ставятся в стандартную системную директорию.
  2. Второе отличие это то, те binary , которые есть в свойстве bin package.json будут поставлены по системному пути. Это означает, что express’ binary  я теперь могу вызвать просто вот так.

Любые дальнейшие операции с глобальными модулями осуществляют также, как с обычными, но с флагом –g:

npm –g up express

или просто

npm –g up

чтобы все модули up были глобальными, которые только стоят.

Или npm –g r express – удалить express.

Зачем вообще нужны глобальные модули?  Перед тем, как об этом говорить, развеем часть заблуждения, связанную со словом «глобальный».
Глобальный  – обычно означает доступный на уровне системы, доступный всем. Глобальная переменная – это та, к которой можно обратиться откуда угодно. В данном случае, слово глобальный используется по историческим причинам. Когда-то так и было, но сейчас, если модуль поставлен глобально, то это не означает, что он автоматически становится доступен всем. То есть, несмотря на то, что я поставил express глобально, если где-нибудь сделаю require(“express”), то оно модуля не найдет. Глобальный, в данном случае, означает, скорее, системный.

Read More:  17. Уроки Node.js. Таймеры, Отличия от Браузера, ref и unref

Основное применение глобальной установки модуля – это сделать доступным binary  по системному пути. Например, есть ряд утилит, которые написаны для Node.JS, скажем, есть утилиты uglify-js, которыми сжимают js файлы. Эту утилиту я могу поставить глобально:
npm –g i  uglify-js

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

Таким образом, если обобщить, глобальные модули – это модули, которые используются для системных нужд. Как правило, это различные утилиты. Глобальный модуль не становится автоматически доступен везде, его можно “прилинковать” к приложению с использованием команды

npm link express.

если хотите, посмотрите и help, но это не рекомендуется.

tumblr_inline_nn489p271Z1t68bpr_500

 

Материал урока взят из следующего скринкаста

We are looking forward to meeting you on our website blog.soshace.com

Share.

Comments are closed.

Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.