Npm听起来像是一个在组织中使用的很棒的平台,很好奇是否可以像Nexus/Maven那样使用私人回购。谷歌上什么都没有出现:(


当前回答

这篇文章讨论了如何设置一个私有注册表

确保在系统中安装了couchdb 使用以下命令复制npmjs.org curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"http://isaacs.iriscouch.com/registry/", "target":"registry", "continuous":true, "create_target":true}' -H "Content-Type: application/json"

注意,该命令中有"continuous":true,这将利用CouchDB的_changes API,并在该API被通知时拉出任何新的更改。

如果你想停止这些复制,你可以很容易地添加"cancel":true。那么剧本就会

    curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"http://isaacs.iriscouch.com/registry/", "target":"registry", "continuous":true, "create_target":true, "cancel":true}' -H "Content-Type: application/json"

然后转到npmjs.org自述me安装npm(确保安装了nodejs和git)。吹是所有的步骤

git clone git://github.com/isaacs/npmjs.org.git
cd npmjs.org
sudo npm install -g couchapp 
npm install couchapp 
npm install semver 
couchapp push registry/app.js http://localhost:5984/registry 
couchapp push www/app.js http://localhost:5984/registry 

其他回答

Verdaccio是我一直在寻找的东西,它应该有自己的答案;)这是Sinopia的一个积极维护的分支(高度好评的答案)。它是一个作为npm包的npm注册表,可以在这里找到

在这里:https://github.com/verdaccio/verdaccio 在这里:https://www.verdaccio.org 端口号:4873

使用PM2运行

npm i -g verdaccio pm2
pm2 start --name verdaccio `which verdaccio`
pm2 save

使用docker运行

docker run -it --rm --detach --name verdaccio -p 4873:4873 verdaccio/verdaccio

使用头盔运行

helm repo add verdaccio https://charts.verdaccio.org
helm repo update
helm install verdaccio/verdaccio

如果你更喜欢分散的方法,你也可以使用Aragon包管理器:

使用APM: http://blog.aragon.one/using-apm-to-replace-npm-and-other-centralized-package-managers/ 部署APM: https://github.com/aragon/aragonOS#apm

有一个容易使用的npm包可以做到这一点。 https://www.npmjs.org/package/sinopia

简而言之,Sinopia是一个私有/缓存npm存储库服务器,你可以用零配置来设置。

Sinopia可用于:

发布自己的私有包,而不向公众公开 只缓存所使用的公共包(不需要复制整个公共注册中心) 使用内部生成的修改版本覆盖公共包。

我想在列表中添加AWS Code Artifact服务,如果您的组织也在使用AWS git回购,看起来是一个不错的方法。

https://aws.amazon.com/blogs/devops/publishing-private-npm-packages-aws-codeartifact/

我们使用的是Sonatype Nexus,版本是Nexus Repository ManagerOSS 3.6.1-02。我确信它支持NPM私有存储库和缓存包。