npm link что это

Все ли популярные команды NPM вы знаете?

Хочешь проверить свои знания по JS?

Подпишись на наш канал с тестами по JS в Telegram!

Всем нам доводилось хотя бы раз настраивать npm — пакетный менеджер node.js. Но мы едва ли отдаем ему должное, ведь это не основная часть нашей разработки. Мы воспринимаем npm как файл, который просто содержит зависимости. Но npm — это нечто большее. И при этом овладеть премудростями его использования хотя бы на среднем уровне совсем не сложно. Давайте начнем с популярных команд.

npm init

Это первая команда, которую вы будете использовать при настройке своего проекта.

Команда запросит у вас общую информацию: имя проекта, описание, версию, имя автора, ссылку на GitHub, домашнюю страницу и т. п. После этого будет сгенерирован файл package.json в корневой папке.

Всю введенную информацию можно в любое время отредактировать.

Все данные при этом будут взяты из ваших настроек конфигурации.

npm config

С помощью этой команды можно менять настройки конфигурации.

Например, можно установить имя автора по умолчанию:

Затем это значение можно вывести в stdout (в стандартный поток вывода, т. е. на экран):

npm install

При помощи этой команды можно установить пакет и любые пакеты, от которых он зависит. Пакет — это папка с программой, описанная в package.json или gzip-архив такой папки.

По умолчанию команда npm install установит все модули, перечисленные как зависимости в package.json.

Для установки отдельного пакета используйте команду в такой форме:

Чтобы сохранить пакет в зависимостях (dependencies — пакеты, от которых зависит ваш пакет, чаще всего это библиотеки), используйте следующую команду:

Для сохранения пакета в dev-зависимостях (devDependencies — пакеты, необходимые для разработки):

По умолчанию все пакеты устанавливаются локально, в папке проекта. Но пакет можно установить и глобально:

npm uninstall

Команда для удаления пакетов.

Чтобы удалить пакет из установленных, выполните следующую команду:

Эта команда принимает три опциональных флага:

npm ci

npm audit

С помощью этой команды можно просканировать свой проект на уязвимости и автоматически установить любые совместимые обновления для уязвимых зависимостей:

npm cache

Добавляет указанный пакет в локальный кэш. Изначально эта команда предназначалась для внутреннего использования самим NPM. Но с ее помощью можно явно добавлять данные в локальный кэш инсталляций.

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

К счастью, yarn кэширует все пакеты, которые вы устанавливаете, и доступен офлайн.

npm ls

Эта команда выводит в stdout (стандартный поток вывода) все установленные версии пакетов, а также их зависимости, в древовидном формате.

npm link

Эта команда часто используется разработчиками, которые хотят перед публикацией компонентов в реестре npm протестировать их локально. Команда создает в глобальной папке символическую ссылку /lib/node_modules/

Далее, в каком-то другом месте команда npm link package-name создаст символическую ссылку из глобально установленного package-name в node_modules/ текущей папки. Теперь вы можете импортировать ваш компонент, и он должен появиться в node_modules.

Обратите внимание, что имя пакета ( package-name ) берется из package.json, а не из имени директории.

npm publish

По умолчанию npm публикует пакеты в публичном реестре. Это можно перезаписать, указав другой реестр по умолчанию или используя scope в имени (см. package.json).

От редакции Techrocks. Предлагаем почитать статью «Как опубликовать собственный NPM-пакет».

npm pack

example-component.tgz — это tar-архив. Я могу скопировать его в любое node-приложение. Затем я добавлю его в мой файл package.json:

npm help

В результате будет выведена подходящая страница документации по указанному термину. Если справки по такому слову нет или если введено несколько терминов, npm запустит команду help-search для поиска соответствий.

npm whoami

Выводит на экран username, указанный в конфиге.

npm login/logout

Вход и выход из учетной записи.

Разумеется, в документации NPM можно найти куда больше полезных команд: не забывайте туда заглядывать!

От редакции Techrocks. Возможно, вам будет интересна статья «5 приемов работы с npm для повышения продуктивности».

Источник

Шпаргалка по пакетному менеджеру NPM

Установка npm

Обновление npm

Есть несколько способов чтобы обновить npm. Я предпочитаю:

Поиск пакетов в npm

Подсказка: Можно также использовать search.npmjs.org
Вторая подсказка: Для поиска необходимо знать имя нужного пакета (всё прекрасно ищет по любому слову как в имени пакета, так и в его описании, может неправильно перевёл?)

Просмотр информации о пакете

Локальная установка пакетов

Для демонстрации возьмём пакет http-server.
http-server is a package we’ve written which provides an easy to use wrapper around node’s core http.Server class. This module makes for a good example, since it’s API provides both a CLI binary and a requirable node.js module.
http-server — пакет, который мы написали, предоставляет более простой интерфейс в использовании базового модуля http.Server из node.js. Этот модуль хороший пример использования API как для бинарного CLI, так и для подключаемого модуля node.js.

Так мы установим http-server в нашей рабочей директории.
Вы увидите новую папку в node_modules. Сейчас можете не обращать на это внимание.

Установка пакета в наше приложение

test.js

Обратите внимание, как мы делаем: require(‘http-server’)? Что это за магия? (автор молодец)
http-server не является базовым модулем node.js. Этот пакет мы только что установили из npm. Node.js и npm взаимодействуют и автоматически подключают наши локальные модули из node_modules директории.

Понимание разницы между глобальной и локальной установкой

test.js

теперь запустим наш скрипт

мы получим эту ошибку:

Это вполне логично, мы установили http-server локально в «/mynewapp/», а не в «/anotherapp/».
Есть два решения в этой ситуации:
а) Установить ещё раз пакет, но локально в наше новое приложение

б) Установить пакет глобально

Глобальная установка пакетов

Если вы хотите чтобы пакет был доступен всем приложениям, его нужно установить глобально:

Кроме того, поскольку http-server пакет имеет свой исполняемый файл, то этот файл также будет установлен как исполняемый http-server и доступен в командах.
Теперь вы можете просто запустить команду:

Удаление локально установленного пакета

Удаление глобально установленного пакета

Установка определённой версии пакета

Установка модуля с Github

Важно. В некоторых случаях будут патчи, форки или ветви, которые вы хотите использовать, но которые еще не были опубликованы в npm. К счастью исходные коды для большинства npm модулей также доступна на www.github.com

Теперь наша клонированная версия http-server связана локально.

Связи любых пакетов локально

Если у вас есть отдельный каталог содержащий пакет npm, то можно создать локальную связь для него. Это удобно в ситуациях, когда мы не хотим опубликовать наш пакет в хранилище npm.

На нашу локальную версию http-server создана «связана» для нашей локальной машины. (связь создаётся как «copy-paste», с начало нужно перейти в нужный катало и сделать «copy», потом перейти в нужный каталог и сделать «paste». Так вот сейчас мы изучили как делается «copy», а ниже будет про «paste» этого модуля)

Связи локальных пакетов для нескольких приложений

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

Мы указываем, что теперь создали связь из http-server в наше новое приложение newapp. Если бы мы не выполнили npm link http-server, то получили бы ошибку об отсутствующем модуле. (а вот наш и «paste» о чём я писал выше, теперь вам должна быть понятна логика создания связей)

Отмена связи между пакетами приложения

(здесь мы просто отменяем наш «paste» для этого приложения)

Отмена связи пакета в системе

(здесь мы отменяем наш «copy» для этого пакета)

Создание нового пакета

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

Добавление нового пользователя

Публикация пакета в репозиторий npm

Удаление пакета из репозитория npm

Управление правами доступа к пакетам в репозитории npm

Вы можете задать права доступа других пользователей к опубликованному пакету:

Источник

npm-link

This is handy for installing your own stuff, so that you can work on it and test iteratively without having to continually rebuild.

Package linking is a two-step process.

First, npm link in a package folder will create a symlink in the global folder /lib/node_modules/

Next, in some other location, npm link package-name will create a symbolic link from globally-installed package-name to node_modules/ of the current folder.

Now, any changes to

/projects/node-redis will be reflected in

You may also shortcut the two steps in one. For example, to do the above use-case in a shorter way:

The second line is the equivalent of doing:

That is, it first creates a global link, and then links the global installation target into your project’s node_modules folder.

If your linked package is scoped (see scope ) your link command must include that scope, e.g.

—workspace will link the relevant package as a dependency of the specified workspace(s). Note that It may actually be linked into the parent project’s node_modules folder, if there are no conflicting dependencies.

Save installed packages to a package.json file as dependencies.

When used with the npm rm command, removes the dependency from package.json.

Dependencies saved to package.json will be configured with an exact version rather than using npm’s default semver range operator.

Operates in «global» mode, so that packages are installed into the prefix folder instead of the current working directory. See folders for more on the differences in behavior.

Causes npm to install the package such that versions of npm prior to 1.4, such as the one included with node 0.8, can install the package. This eliminates all automatic deduping. If used with global-style this option will be preferred.

By default, conflicting peerDependencies deep in the dependency graph will be resolved using the nearest non-peer dependency specification, even if doing so will result in some packages receiving a peer dependency outside the range set in their package’s peerDependencies object.

If set to false, then ignore package-lock.json files when installing. This will also prevent writing package-lock.json if save is true.

Dependency types to omit from the installation tree on disk.

Note that these dependencies are still resolved and added to the package-lock.json or npm-shrinkwrap.json file. They are just not physically installed on disk.

If true, npm does not run scripts specified in package.json files.

When «true» submit audit reports alongside the current npm command to the default registry and all registries configured for scopes. See the documentation for npm audit for details on what is submitted.

Set to false to have it not do this. This can be used to work around the fact that some file systems don’t support symlinks, even on ostensibly Unix systems.

When «true» displays the message at the end of each npm install acknowledging the number of dependencies looking for funding. See npm fund for details.

Enable running a command in the context of the configured workspaces of the current project while filtering by running only the workspaces defined by this configuration option.

Valid values for the workspace config are either:

When set for the npm init command, this may be set to the folder of a workspace which does not yet exist, to create the folder and set it up as a brand new workspace within the project.

This value is not exported to the environment for child processes.

Enable running a command in the context of all the configured workspaces.

This value is not exported to the environment for child processes.

Источник

npm-link

Synopsis

Description

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

Связывание пакетов-это двухступенчатый процесс.

npm link in a package folder will create a symlink in the global folder /lib/node_modules/

/projects/node-redis will be reflected in

/projects/node-redis будут отражаться в

Вы также можете сократить два шага на один.Например,сделать приведенный выше вариант использования короче:

Вторая строка-это эквивалент действий:

Caveat

Workspace Usage

Configuration

Сохраняйте установленные пакеты в файл package.json в качестве зависимостей.

save-exact

Зависимости,сохраненные в package.json,будут настроены с точной версией,а не с использованием оператора semver range по умолчанию npm.

global

global-style

legacy-bundling

strict-peer-deps

package-lock

Типы зависимостей,которые следует исключить из дерева установки на диске.

ignore-scripts

Если переменная имеет значение true,то npm не запускает скрипты,указанные в файлах package.json.

audit

bin-links

Установите фальшивку,чтобы она не делала этого.Это может быть использовано,чтобы обойти тот факт,что некоторые файловые системы не поддерживают сим-ссылки,даже на якобы Unix-системах.

dry-run

workspace

Разрешает выполнение команды в контексте настроенных рабочих пространств текущего проекта при фильтрации путем выполнения только рабочих пространств,определенных этим параметром конфигурации.

Это значение не экспортируется в среду для дочерних процессов.

workspaces

Установите значение true, чтобы выполнить команду в контексте всех настроенных рабочих областей.

Это значение не экспортируется в среду для дочерних процессов.

include-workspace-root

Включите корень рабочей области,если для команды включены рабочие области.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *