Ответ 1
cd somedir
npm install .
или
npm install path/to/somedir
somedir
должен содержать package.json
внутри него.
Он также знает о git:
npm install git://github.com/visionmedia/express.git
Я взял общий код и поместил его в модуль NPM, который я не хочу загружать в центральный реестр. Вопрос в том, как мне установить его из других проектов?
Очевидным способом, вероятно, является создание моего собственного реестра NPM, но, согласно документации, это связано с большим количеством хлопот.
Можно ли просто установить модуль NPM, который находится в локальной файловой системе, или, возможно, даже из git?
npm install --from-git [email protected]:project
cd somedir
npm install .
или
npm install path/to/somedir
somedir
должен содержать package.json
внутри него.
Он также знает о git:
npm install git://github.com/visionmedia/express.git
В частных модулях npm добавьте
"private": true
на ваш пакет .json
Затем, чтобы ссылаться на частный модуль в другом модуле, используйте это в своем пакете. json
{
"name": "myapp",
"dependencies": {
"private-repo": "git+ssh://[email protected]:myaccount/myprivate.git#v1.0.0",
}
}
Можно ли просто установить пакет NPM, который находится на локальной файловой системе или, возможно, даже из git?
Да, вы можете! Из документов https://docs.npmjs.com/cli/install
Пакет:
- a) папку, содержащую программу, описанную в файле package.json
- b) gzipped tarball, содержащий (a)
- c) URL-адрес, который разрешает (b)
- d) a
<name>@<version>
, который публикуется в реестре с (c)- e) a
<name>@<tag>
, который указывает на (d)- f) a
<name>
, который имеет "последний" тег, удовлетворяющий (e)- g) a
<git remote url>
, который разрешает (b)
Является ли npm блестящим?
Обновление января 2016 года
В дополнение к другим ответам иногда возникает сценарий, в котором вы хотите иметь частные модули, доступные в командном контексте.
Оба Github и Bitbucket поддерживают концепцию создания команды API-ключа. Этот ключ API можно использовать как пароль для выполнения запросов API в качестве этой команды.
В частных модулях npm добавьте
"private": true
на ваш package.json
Затем, чтобы ссылаться на частный модуль в другом модуле, используйте это в своем пакете. json
{
"name": "myapp",
"dependencies": {
"private-repo":
"git+https://myteamname:[email protected]/myprivate.git",
}
}
где имя команды = myteamname, а API Key = aQqtcplwFzlumj0mIDdRGCbsAq5d6Xg4
Здесь я ссылаюсь на битбакет репо, но он почти идентичен с помощью github тоже.
Наконец, в качестве альтернативы, если вы действительно не против платить $7 в месяц (с момента написания), вы можете теперь частные модули NPM из коробки.
FWIW: У меня были проблемы со всеми этими ответами при работе с репозиторием частной организации.
Следующие работали для меня:
npm install -S "git+https://[email protected]/orgname/repositoryname.git"
Например:
npm install -S "git+https://[email protected]/netflix/private-repository.git"
Я не совсем уверен, почему другие ответы не помогли мне в этом случае, потому что это то, что я пробовал, прежде чем я ударил Google и нашел этот ответ. И другие ответы - это то, что я делал в прошлом.
Надеюсь, это поможет кому-то другому.
У меня была такая же проблема, и после некоторого поиска я нашел Reggie (https://github.com/mbrevoort/node-reggie). Он выглядит довольно прочным. Это позволяет упростить публикацию модулей NPM на частных серверах. Не идеально (без аутентификации при установке), и он по-прежнему очень молод, но я тестировал его локально, и, похоже, он делает то, что он говорит, что он должен делать.
То есть... (и это только из их документов)
npm install -g reggie
reggie-server -d ~/.reggie
затем cd в каталог вашего модуля и...
reggie -u http://<host:port> publish
reggie -u http://127.0.0.1:8080 publish
наконец, вы можете устанавливать пакеты из reggie, просто используя этот URL-адрес либо в прямой команде установки npm, либо изнутри package.json... так
npm install http://<host:port>/package/<name>/<version>
npm install http://<host:port>/package/foo/1.0.0
или..
dependencies: {
"foo": "http://<host:port>/package/foo/1.0.0"
}
Создайте свой код доступным способом, как показано ниже. Если это возможно для вас.
NodeProjs\Apps\MainApp\package.json
NodeProjs\Modules\DataModule\package.json
Внутри MainApp @ NodProjs\Apps\MainApp\
npm install --S ../../Modules/DataModule
Вам может потребоваться обновить package.json как:
"dependencies": {
"datamodule": "../../Modules/DataModule"
}
Это сработало для моей ситуации.
Npm теперь предоставляет неограниченные частные размещенные модули за $7/пользователь/месяц, используемые так
cd private-project
npm login
в вашем пакете json set "name": " @username/private-project"
npm publish
чтобы потребовать ваш проект:
cd ../new-project
npm install --save @username/private-project
Начиная с arcseldon answer, я обнаружил, что имя команды было необходимо в URL-адресе следующим образом:
npm install --save "git+https://[email protected]@bitbucket.org/myteamname/myprivate.git"
И обратите внимание, что ключ API доступен только для команды, а не для отдельных пользователей.
Конфигурация для установки из общедоступного репозитория Github, даже если машина находится под брандмауэром:
dependencies: {
"foo": "https://github.com/package/foo/tarball/master"
}
Я использую следующее с частным репозиторием github:
npm install github:mygithubuser/myproject
Это было то, что я искал:
# Get the latest from GitHub, public repo:
$ npm install username/my-new-project --save-dev
# Bitbucket, private repo:
$ npm install git+https://token:[email protected]/username/my-new-project.git#master
$ npm install git+ssh://[email protected]/username/my-new-project.git#master
# … or from Bitbucket, public repo:
$ npm install git+ssh://[email protected]/username/my-new-project.git#master --save-dev
# Bitbucket, private repo:
$ npm install git+https://username:[email protected]/username/my-new-project.git#master
$ npm install git+ssh://[email protected]/username/my-new-project.git#master
# Or, if you published as npm package:
$ npm install my-new-project --save-dev
Очень просто -
npm config set registry https://path-to-your-registry/
Он фактически устанавливает registry = "https://path-to-your-registry"
эту строку в /Users/<ur-machine-user-name>/.npmrc
Все значения, которые вы установили явно или были установлены по умолчанию, можно увидеть с помощью npm config list
Для этой цели вы можете использовать Verdaccio, который представляет собой легкий частный реестр прокси-серверов npm, встроенный в Node.js. Также это бесплатно и с открытым исходным кодом.
Вы можете найти подробную информацию о том, как установить и запустить его на их веб-сайте, но вот шаги:
Требуется node >=8.x
// Install it from npm globally
npm install -g verdaccio
// Simply run with the default configuration that will host the registry which you can reach at http://localhost:4873/
verdaccio
// Set the registry for your project and every package will be downloaded from your private registry
npm set registry http://localhost:4873/
// OR use the registry upon individual package install
npm install --registry http://localhost:4873
Он также имеет докер, так что вы можете легко опубликовать его в общедоступном докере и, вуаля, у вас есть частный репозиторий npm, который можно распространять другим способом, как вы его настраиваете!