- PVSM.RU - https://www.pvsm.ru -
Типичная ситуация — в проекте существует некий модуль. Модуль развивается, становится самостоятельным элементом и копируется в другой проект. Потом еще один проект. И еще.
В каждом проекте модуль обновляется и улучшается, и, в какой-то момент, становится не понятно, где актуальная версия.
Да ладно, «не понятно где актуальная версия»! Вполне возможно, что в каждом проекте у модуля будут свои модификации, в которые будет достаточно сложно привести в порядок для использования в следующем проекте.
Вполне можно ограничиться созданием отдельного репозитория для модуля, например на GitHub или Bitbucket. Но добавлять репозиторий как субмодуль для GIT — это путь к приключениям [1].
Можно пойти дальше, и создать на основе такого модуля npm-пакет.
Работать с такими пакетами очень просто. Установить npm-пакет можно с помощью команды npm install
, а обновить с помощью npm update
.
Создавать npm-пакеты совсем не сложно. Ниже я кратко опишу моменты, с которыми я столкнулся, во время публикации своего первого модуля. По формату это больше шпаргалка — что не
Файловая структура может быть совершенно разной. Вполне разумно использовать для создания ФС модуля grunt-init [2] и grunt-init-node [3].
Вполне логично (но не обязательно) будет создать репозиторий на GitHub или Bitbucket.
Плюсы:
Для того, что бы опубликовать модуль, нужно правильно заполнить package.json. О том, как это сделать подробно написано в документации к npm [4], либо более интерактивно здесь [5].
Для того, что бы опубликовать пакет — нужно авторизоваться в npm. Если вы еще не зарегистрированы:
npm adduser
После этого нужно будет ввести имя пользователя, пароль и email. После регистрации, npm авторизует вас под созданной учетной записью.
В случае, если вы уже были зарегистрированы в npm раньше — вам нужно авторизоваться,
npm login
Теперь можно опубликовать пакет, набрав в консоли:
npm publish
После того, как пакет опубликован — его можно установить с помощью команды
npm install
Для удаления пакета из npm существует команда:
npm unpublish <project>[@<version>]
Конечно, создание npm-пакетов — это не панацея, и вполне вероятно, что это подойдет далеко не всем, но я бы назвал это «еще одним путем к модульности».
Автор: asheee
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/node-js/32687
Ссылки в тексте:
[1] это путь к приключениям: http://http://git-scm.com/book/ru/Инструменты-Git-Подмодули#Проблемы-с-подмодулями
[2] grunt-init: https://github.com/gruntjs/grunt-init
[3] grunt-init-node: https://github.com/gruntjs/grunt-init-node
[4] документации к npm: https://npmjs.org/doc/json.html
[5] здесь: http://package.json.nodejitsu.com/
[6] Источник: http://habrahabr.ru/post/177465/
Нажмите здесь для печати.