使用Travis CI发布到NPMJS

问题描述 投票:0回答:1

我已经设置了一个Travis CI来运行一些应该:

  1. 将一些静态页面部署到Github页面
  2. 将NPM包部署到npmjs

第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-ci npmjs
1个回答
0
投票

修正了它 - 而不是在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作为环境变量。

(仍然好奇为什么它不起作用,但我不能为此做点什么,因为我今天已经在这个问题上浪费了太多时间)

© www.soinside.com 2019 - 2024. All rights reserved.