我已经设置了一个Travis CI来运行一些应该:
第1项有效,第2项没有。
这是我的travis.yml
文件的样子:
language: node_js
node_js:
- '10'
script:
- gulp build
- gulp npmDist
deploy:
- provider: pages
local_dir: dist-site/
skip_cleanup: true
github_token: "$GITHUB_TOKEN"
on:
branch: master
- provider: npm
email: [email protected]
api_key:
secure: THE-API-KEY-I-GOT-BY-CREATING-A-TOKEN-ON-NPMJS-AND-ENCRYPTING-IT-USING-TRAVIS-ENCRYPT-COMMAND-IN-TERMINAL
on:
tags: true
repo: githubaccount/reponame
all_branches: true
我以两种方式触发脚本: - 当我合并到master时,它会部署到GitHub Pages。 - 当我创建一个标签并推送到主控时,它应该将软件包部署到npmjs。
如上所述,文件的第一部分可以正常工作,因为它实际部署到GitHub Pages。
这是我从npmjs得到的错误:
npm ERR! publish Failed PUT 401
npm ERR! code E401
npm ERR! You must be logged in to publish packages. : package-name
(哦,还有一个奇怪的事情:Travis以“Build Passed”和成功状态(绿色)返回,即使显然出现了问题)
希望这有道理吗?在此先感谢您的帮助。
修正了它 - 而不是在travis.yml
文件中有这个:
api_key:
secure: THE-API-KEY-I-GOT-BY-CREATING-A-TOKEN-ON-NPMJS-AND-ENCRYPTING-IT-USING-TRAVIS-ENCRYPT-COMMAND-IN-TERMINAL
我改成了:
api_key: "$NPM_TOKEN"
..并在Travis CI仪表板中添加了NPM Token作为环境变量。
(仍然好奇为什么它不起作用,但我不能为此做点什么,因为我今天已经在这个问题上浪费了太多时间)