如何使用Travis CI发布到npm?我尝试了以下.travis.yml:
language: nodejs
node_js:
- '6'
- '6.1'
- '5.11'
before_script:
- npm install -g nodeunit
script: nodeunit
deploy:
provider: npm
email: my_email
api_key: "encrypted"
但是当谈到npm位时,我得到了:
npm ERR! publish Failed PUT 400
npm ERR! Error: Not found : package-name
有什么想法吗?
更新
用
api_key:
secure: "..."
我收到另一个错误:
NPM API key format changed recently. If your deployment fails, check your
API key in ~/.npmrc.
http://docs.travis-ci.com/user/deployment/npm/
~/.npmrc size: 53
env: <this is my unencrypted api key>: No such file or directory
解
终于解决了。 travis上的npm版本真的很旧(1.4.28)。我所要做的就是放一个:
before_script:
- npm install -g npm@'>=3'
现在它有效!
答案 0 :(得分:1)
有些事情可能会出错。首先,您检查过pd.concat([df.groupby('knob_1')['signal'].min(),
df.groupby('knob_2')['signal'].min()],
keys=['knob_1', 'knob_2'],
names=['parameter', 'value'])
并确保有package.json
财产吗?或者名称是否与现有的npm包冲突?错误消息表明存在问题。
但还有另一个问题。您的API密钥似乎是字符串文字name
,除非您只是将其用作此示例的占位符。看起来应该是这样的:
"encrypted"
另请注意provider: npm
email: my.email@gmail.com
api_key:
secure: "Esiel6Dws/vjwNshQ/nmx43+7/lpqsl8Dkd ..."
skip_cleanup: true
属性。如果要发布构建的任何工件,则应包括此内容。
加密可以使用Travis CLI完成。请参阅encrypt
和setup
命令。
有关工作示例,请参阅GitHub上.travis.yml
项目上的this文件。
最后,请确保您的API密钥正确无误。在您登录到npm的计算机上,检查skip_cleanup
文件。
~/.npmrc
然后找到以nano ~/.npmrc
开头的行。确保在//registry.npmjs.org/:_authToken=
中将此令牌用作API密钥。只要您在该计算机上登录到npm,该令牌就会有效。
答案 1 :(得分:0)
我看到你已经解决了,但我希望分享我的工作解决方案:
首先,我在these instruction之后生成了一个npm-token。
简单地说,我已经在我的电脑上使用npm login
登录npm,然后通过cat ~/.npmrc
获取它以获取它。
然后我在travis中添加了一个环境变量:
最后我添加到.travis.yml
:
deploy:
provider: npm
email: my-email@provider.com
api_key: $NPM_TOKEN
on:
tags: true
只有在构建成功且任何标记添加到git存储库时才会发布到npm存储库(因此只有在需要时才能发布)。