ke_*_*_wa 20 bash command-line npm
我想通过bash脚本自动执行npm登录过程.
我尝试使用此代码段:
/usr/bin/expect -f - <<EOD
spawn npm adduser
expect "Username:"
send "myUserName\n"
expect "mail: (this IS public)"
send "my@email.com\n"
EOD
Run Code Online (Sandbox Code Playgroud)
但没有运气.
注意:我将使用env变量更改字符串
ke_*_*_wa 24
@AurélienThieriot:谢谢你的提示.
我有两个问题的解决方案:
解决方案1:
export NPM_AUTH_TOKEN=myToken
export NPM_EMAIL=myEmail
Run Code Online (Sandbox Code Playgroud)
~/.npmrc
通过以下shell脚本创建/覆盖:
echo "_auth = $NPM_AUTH_TOKEN" > ~/.npmrc
echo "email = $NPM_EMAIL" >> ~/.npmrc
Run Code Online (Sandbox Code Playgroud)
解决方案2:
export NPM_USERNAME=myUsername
export NPM_PASSWORD=myPassword
export NPM_EMAIL=myEmail
Run Code Online (Sandbox Code Playgroud)
我知道问题的顺序.所以我可以做到以下几点:
npm adduser <<!
$NPM_USERNAME
$NPM_PASSWORD
$NPM_EMAIL
!
Run Code Online (Sandbox Code Playgroud)
注意:解决方案2仅在未添加用户时才起作用
否则$NPM_PASSWORD
不需要
这种方式有效,并且期望更高:
/usr/bin/expect <<EOD
spawn npm adduser
expect {
"Username:" {send "$USERNAME\r"; exp_continue}
"Password:" {send "$PASSWORD\r"; exp_continue}
"Email: (this IS public)" {send "$EMAIL\r"; exp_continue}
}
EOD
Run Code Online (Sandbox Code Playgroud)
对于使用私有注册表(通常用于 CI 目的)的人员来说,直接访问 Rest API 可能是一个解决方案:
curl -XPUT -H "Content-type: application/json" -d '{ "name": "your_username", "password": "your_password" }' 'http://localhost:4873/-/user/org.couchdb.user:your_username'
Run Code Online (Sandbox Code Playgroud)
这就是npm adduser
幕后所做的事情。
归档时间: |
|
查看次数: |
13187 次 |
最近记录: |