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

Предположим, вы только что написали замечательный модуль node, который хотите разбить на пакет, чтобы его можно было использовать повторно. Проблема в том, что он содержит некоторые сверхсекретные материалы компании, которыми нельзя поделиться, и вы не можете или не хотите создавать частную организацию npm. Так что же вы делаете сейчас?

Вы не поверите, но если вы используете частные репозитории git, то у вас уже есть все, что вам нужно.

Установка пакетов из git

Установить пакеты с помощью git на самом деле очень просто, если вы используете github, gitlab, bitbucket. npm install просто требуется специальное имя пакета для установки из git. Формат - SERVICE:user/repo.

Итак, если ваше имя пользователя stan и вы пытаетесь установить репозиторий willzyx из gitlab, выполните следующую команду:

npm install gitlab:stan/willzyx

А как насчет версий?

Чтобы установить определенный тег или ветку, добавьте #NAME в конец имени пакета. Если вы используете npm version для обновления версии пакета, вы можете добавить #semver:^1.0, чтобы установить последнюю версию 1.x.

А как насчет сложных пакетов?

Конечно, это отлично подходит для старых пакетов javascript, но что, если вы используете что-то необычное, например Typescript? Как собрать пакет, не проверяя артефакты сборки в репо?

В разделе scripts package.json есть несколько специальных сценариев, которые запускаются как часть определенных команд npm. Вы хотите определить prepare. Этот сценарий запускается после установки пакета.

Чтобы продолжить пример машинописного текста, вы можете использовать следующий сценарий подготовки:

"prepare": "node_modules/.bin/tsc"

Любые зависимости разработки будут установлены до запуска сценария и очищены после.

Теперь, когда он построен, как мне очистить его?

Это тоже довольно просто, если вы используете git. Так же, как в git есть файл .gitignore, в npm есть файл .npmignore. .npmignore имеет тот же формат и применяется после завершения сценария подготовки. Это означает, что вы можете добавить исходный каталог в .npmignore, и он волшебным образом исчезнет после установки пакета.

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

использованная литература

  1. Установить | Документация по npm
  2. Скрипты | Документация по npm

Первоначально опубликовано на https://justwriteapps.com.