node.js – 如何将私有项目发布到Sinopia(私有注册表的npm adduser失败)

好吧,所以我终于设法得到一个私人的npm注册表使用Sinopia。但我不能发表任何内容

TL;DR: Sinopia does not support npm adduser,but has its own user
management. Also npm needs a valid user created before npm publish
through npm adduser,which fails because the internal Sinopia server
throws an error at the unsupported command….

如何使用Sinopia作为具有适当用户和密码的私人注册

>在npmjs.org中创建一个全局用户,然后在Sinopia中创建一个具有相同密码的用户
>还是有一个更简单的方式来告诉npm只使用一个固定的用户/通行证。
>甚至更好的提示我不知何故用户名和密码?
>别的东西

概要:

Sinopia不依赖于Couch.DB,并且将会从主机中提取它不具备的软件包(认是全局npmjs.org)。

Sinopia完美启动,并配置为侦听所有接口。它为服务包提供了奇迹

npm install

我甚至配置〜/ .npmrc总是指向内部注册表。

所有项目的package.json文件都设置为

....
  "publishConfig" : {
     "registry" : "http://internal-npm:4873"
  },....

另外,我设法通过在js-yaml的帮助下操作config.yaml来添加用户在sinopia

crypto.createHash('sha1').update('theBigPassword').digest('hex')

现在我被困在了

npm --registry=http://internal-npm:4873 --ca=null publish

经过漫长的等待,我得到:

npm ERR! need auth auth and email required for publishing
npm ERR! need auth You need to authorize this machine using `npm adduser`

npm ERR! System Linux 3.11.0-18-generic
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "--registry=http://internal-npm:4873" "--ca=null" "publish"
npm ERR! cwd /home/ciprian/workspace/netop-npm
npm ERR! node -v v0.10.15
npm ERR! npm -v 1.2.18
npm ERR! code ENEEDAUTH
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/ciprian/workspace/netop-npm/npm-debug.log
npm ERR! not ok code 0

日志文件的业务端告诉我用户不是可选的

86 error need auth auth and email required for publishing
86 error need auth You need to authorize this machine using `npm adduser`
87 error System Linux 3.11.0-18-generic
88 error command "/usr/bin/nodejs" "/usr/bin/npm" "--registry=http://internal-npm:4873" "--ca=null" "publish"
89 error cwd /home/ciprian/workspace/netop-npm
90 error node -v v0.10.15
91 error npm -v 1.2.18
92 error code ENEEDAUTH
93 verbose exit [ 1,true ]

现在,鸡蛋问题是,Sinopia不支持npm adduser,而是像上面提到的那样有自己的用户管理。另外,npm需要通过npm adduser创建的有效用户,因为内部Sinopia服务器在不受支持的命令中引发错误,因此失败。

解决方法

首先,它不是“鸡蛋”问题。

“npm adduser”有两件事情:

>它在远程服务器上创建一个新用户,或者验证它是否存在
>它添加_auth到你的.npmrc

如果用户不存在,Sinopia将会抱怨,但如果有的话,会高兴地报告成功。

那么你要做的就是这样做:

>添加用户/传递给config.yaml(请参阅josh的答案)并重新启动sinopia服务器
>运行npm adduser –registry http:// internal-npm:4873 /

是的,“adduser”命令令人困惑,因为它实际上不会添加新的用户。它只会验证用户是否存在于配置中。

如果需要,可以使用“npm登录”命令。即使它完全相同的事情也不那么困惑。

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...