Я взял некоторый общий код и поместил его в модуль NPM, который я не хочу загружать в центральный реестр. Вопрос в том, как мне установить его из других проектов?
Очевидный способ, вероятно, состоит в том, чтобы настроить собственный реестр NPM, но, согласно документации, это связано с большими трудностями.
Могу ли я просто установить модуль NPM, который находится в локальной файловой системе, или, возможно, даже из git?
npm install --from-git git@server:project
node.js
npm
package
npm-private-modules
futlib
источник
источник
npm install
все файлы скопированы в каталог вашего проекта. Таким образом, пути вrequire
выражениях будут относительными только к вашему каталогу проекта.install
разве это не установится там, а не для проекта, для которого вы хотите его использовать?#<ref>
в конец URL-адреса git, напримерgit://github.com/visionmedia/express.git#v0.0.1
; (b) На всякий случай добавьте"private": true
в package.json ваши личные репозитории. Это гарантирует, что npm никогда не позволит вам случайно опубликовать свой секретный соус в официальном реестре npm. (согласно debuggable.com/posts/… )npm i git+http://all/the/things.git
хотя онgit clone http://all/the/things.git
работает просто отличноВ ваши частные модули npm добавьте
в ваш package.json
Затем для ссылки на приватный модуль в другом модуле используйте это в вашем package.json
источник
"private": true
часть не обязательна, но она поможет предотвратить случайную публикацию вашего частного репо в публичный реестр npm.npm install <git remote url>
разделе есть варианты, такие какGIT_ASKPASS
и.GIT_SSH
Пример использования для выбора ключа, отличного от id_rsa по умолчанию:GIT_SSH_COMMAND='ssh -i ~/.ssh/custom_ident' npm install git+ssh://git@github.com:npm/npm.git
Да, ты можешь! Из документов https://docs.npmjs.com/cli/install
Разве npm не блестящий?
источник
tar -czf my-package.tar.gz dist
(при условии, что в вашейdist
папке также есть нужныйpackage.json
файл), то вы можете сделать этоnpm install ../my-lib/my-package.tar.gz
из другого вашего проекта.Обновление январь 2016
В дополнение к другим ответам , иногда есть сценарий, когда вы хотите, чтобы частные модули были доступны в командном контексте.
И Github, и Bitbucket поддерживают концепцию генерации ключа API команды . Этот ключ API можно использовать в качестве пароля для выполнения запросов API этой команды.
В ваши частные модули npm добавьте
на ваш package.json
Затем для ссылки на приватный модуль в другом модуле используйте это в вашем package.json
где название команды = myteamname , и ключ API = aQqtcplwFzlumj0mIDdRGCbsAq5d6Xg4
Здесь я ссылаюсь на репозиторий bitbucket, но он также почти идентичен при использовании github.
Наконец, в качестве альтернативы, если вы действительно не возражаете платить по 7 долларов в месяц (на момент написания), то теперь вы можете иметь частные модули NPM из коробки.
источник
FWIW: У меня были проблемы со всеми этими ответами при работе с хранилищем частной организации.
У меня сработало следующее:
Например:
Я не совсем уверен, почему другие ответы не сработали для меня в этом одном случае, потому что это то, что я пытался сначала, прежде чем я попал в Google и нашел этот ответ. И другие ответы - то, что я сделал в прошлом.
Надеюсь, это поможет кому-то еще.
источник
https://
и убедитесь, что пароль не нужен при втором запуске. Тогда всеУ меня была такая же проблема, и после некоторого поиска я нашел Реджи ( https://github.com/mbrevoort/node-reggie ). Это выглядит довольно солидно. Это позволяет облегчить публикацию модулей NPM на частных серверах. Не идеально (без аутентификации при установке), и он все еще очень молодой, но я проверил его локально, и, похоже, он делает то, что говорит.
То есть ... (и это только из их документов)
затем перейдите в каталог вашего модуля и ...
наконец, вы можете установить пакеты из reggie, просто используя этот URL либо в прямой команде npm install, либо из пакета package.json ... вот так
или..
источник
Структурируйте свой код доступным способом как ниже. Если это возможно для вас.
В пределах MainApp @ NodProjs \ Apps \ MainApp \
Вам может потребоваться обновить package.json как:
Это сработало для моей ситуации.
источник
Npm теперь предоставляет неограниченные частные размещенные модули за $ 7 / пользователь / месяц, используемые так
в вашем комплекте JSON
"name": " @username/private-project"
тогда потребовать ваш проект:
источник
Начиная с ответа arcseldon , я обнаружил, что название команды было необходимо в URL:
И обратите внимание, что ключ API доступен только для команды, а не для отдельных пользователей.
источник
Настройка для установки из общедоступного репозитория Github, даже если машина находится под брандмауэром:
источник
Я использую следующее с частным репозиторием GitHub:
источник
Это было то, что я искал :
источник
Вы можете использовать ВердаччоДля этой цели который представляет собой легкий частный реестр прокси-серверов npm, встроенный в Node.js. Также это бесплатно и с открытым исходным кодом. Использование Verdaccio не требует столько хлопот, как простой частный реестр npm.
Вы можете найти подробную информацию о том, как установить и запустить его на их сайте, но вот шаги:
Это требует
node >=8.x
.Он также имеет докер, так что вы можете легко опубликовать его в общедоступном докере, и, вуаля, у вас есть частный репозиторий npm, который можно распространять другим способом, как вы его настраиваете!
источник
Очень просто -
Это на самом деле устанавливает
registry = "https://path-to-your-registry"
эту строку/Users/<ur-machine-user-name>/.npmrc
Все значения, которые вы установили явно или были установлены по умолчанию, могут быть просмотрены с помощью -
npm config list
источник