TL;DR: Make an HTTP request directly to the registry:
TOKEN=$(curl -s
-H "Accept: application/json"
-H "Content-Type:application/json"
-X PUT --data '{"name": "username_here", "password": "password_here"}'
http://your_registry/-/user/org.couchdb.user:username_here 2>&1 | grep -Po
'(?<="token": ")[^"]*')
npm set registry "http://your_registry"
npm set //your_registry/:_authToken $TOKEN
Rationale
Behind the scenes npm adduser
makes an HTTP request to the registry. Instead of forcing adduser
to behave the way you want, you could make the request directly to the registry without going through the cli and then set the auth token with npm set
.
The source code suggests that you could make a PUT request to http://your_registry/-/user/org.couchdb.user:your-username
with the following payload
{
name: username,
password: password
}
and that would create a new user in the registry.
Many thanks to @shawnzhu for having found a more cleaner approach to solve the problem.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…