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


当前回答

https://github.com/isaacs/npmjs.org/: 在npm v1.0.26版本中,你可以在包中指定私有git存储库url作为依赖项。json文件。我没有使用它,但希望得到反馈。以下是你需要做的:

{
    "name": "my-app",
    "dependencies": {
        "private-repo": "git+ssh://git@yourgitserver.com:my-app.git#v0.0.1",
    }
}

可调试:私有npm模块

其他回答

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

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

Sinopia可用于:

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

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

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

确保在系统中安装了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 

这是我所知道的最简单的方法——用Gemfury私有npm注册表在云中托管它。

它是免费的,你可以用你的Github账户登录。与建立自己的数据库相比,这样可以节省很多时间。

在2015年4月14日,npm私有模块被引入。

当你为私人模块付费时,你可以: 托管尽可能多的私有包 将这些包的读访问权或读写访问权授予任何其他付费用户 安装并使用其他付费用户授予您读访问权限的任何包 协作其他付费用户授予您写权限的任何包

当然它不是免费的——目前每个用户每月7美元。

这仍然是一项相当新的服务。例如,缺少对组织帐户的支持(截至2015年6月):

目前,私有包仅对个人用户可用,但对组织帐户的支持很快就会推出。在此期间,请随意为您的组织创建一个用户,我们可以在提供支持时将其升级为组织。

因此,虽然它并不完美,但它是维护私有包的官方npm解决方案,这本身就值得一提。

更新

Npm私有包现已可用,针对个人用户和组织:

不限数量的公共和私人套餐 7美元/月/开发人员 包含一个基于组织名称的作用域名称 发布和控制对@org-name/foo的访问

(免责声明:与npm, Inc.没有任何关联)