Программирование

Установка npm‑модуля локально без глобальной установки

Узнайте, как установить скачанный npm‑модуль локально в проекте, используя локальные пути, tarball, git‑URL или npm link, чтобы избежать глобальной установки для чистой.

Как можно установить скачанный npm‑модуль локально в каталоге проекта, а не глобально?

Скачанный пакет можно добавить в папку node_modules вашего проекта, установив его из локального пути, из tarball‑архива или связав с помощью npm link. Ни один из этих способов не требует глобальной установки; модуль остаётся внутри проекта и разрешается через require() или import точно так же, как и любая другая зависимость.

Содержание


Как установить из локальной папки

Если вы уже распаковали пакет в отдельную директорию, просто укажите путь к ней при установке:

bash
# Предположим, пакет лежит по пути ../my-lib
npm install ../my-lib --save
  • ../my-lib — относительный путь от каталога проекта к пакету.
  • --save — добавит зависимость в package.json (в npm ≥ 5 это по умолчанию).

После выполнения команды в вашем проекте появится каталог node_modules/my-lib.
Вы можете проверить, что пакет доступен:

bash
node -e "console.log(require('./node_modules/my-lib').version)"

Совет:
Если вы собираетесь часто менять пакет, можно использовать npm link (см. ниже) чтобы автоматически обновлять ссылку.

Как установить из архивного файла

Если пакет пришёл в виде tarball‑архива (.tgz, .tar.gz), установите его напрямую:

bash
npm install /path/to/package.tgz --save

npm разархивирует файл в node_modules и установит все зависимости, указанные в его package.json.

Если архив был загружен из интернета, можно сразу указать URL:

bash
npm install https://example.com/package.tgz --save

Примечание:
При работе с приватными пакетами убедитесь, что ваш токен npm настроен в .npmrc.

npm link позволяет «подключить» локальный пакет к проекту, как будто он установлен глобально, но при этом остаётся в локальной папке.

  1. Перейдите в каталог пакета и создайте глобальную ссылку:

    bash
    cd /path/to/my-lib
    npm link
    
  2. В каталоге вашего проекта подключите пакет:

    bash
    cd /path/to/my-project
    npm link my-lib
    

После этого в node_modules появится символическая ссылка на my-lib, и любые изменения в исходниках пакета автоматически видны в проекте.

Плюсы
• Быстрый прототипинг разработки.
• Не требуется пересобирать пакет каждый раз.

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

Как использовать git‑URL для локальной установки

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

bash
# Предположим, репозиторий находится в ../my-lib
npm install ../my-lib --save

npm распознаёт, что это git‑репозиторий, и клонирует его в node_modules.
Если репозиторий уже клонирован, npm просто копирует файлы.

Совет
Добавьте строку "git": "file:../my-lib" в раздел dependencies вашего package.json, чтобы сделать установку декларативной.

Лучшие практики и советы

Практика Почему важно Как реализовать
Устанавливать только нужные пакеты Уменьшает размер node_modules и ускоряет сборку npm install <pkg> --save-dev если пакет нужен только при разработке
Разрешать версии явно Предотвращает конфликт зависимостей npm install <pkg>@1.2.3 --save
Проверять package.json на наличие files Убирает лишние файлы из пакета В корне пакета добавить "files": ["dist", "src"]
Использовать npm ci в CI/CD Быстрое и предсказуемое развертывание npm ci вместо npm install
Документировать локальные зависимости Упростит поддержку проекта Добавить в README инструкции типы установки

Заключение

  • Для локальной установки можно указать путь к папке, архиву или git‑репозиторию.
  • npm link полезен при активной разработке, но ограничен локальной средой.
  • Установка из локальной папки сохраняет структуру проекта чистой и не загрязняет глобальное окружение.
  • Следуйте лучшим практикам, чтобы ваш проект оставался надёжным и легко воспроизводимым.

Источники

  1. npm‑install – npm Docs
  2. How to Install a Local npm Module (Not Globally) in Another Directory
  3. Installing a local module using npm? – Stack Overflow
  4. npm link – npm Docs
  5. Node.js: npm 1.0: Global vs Local installation
Авторы
Проверено модерацией
Модерация