npm 发布
此页面记录了使用 dpl v1 进行的部署,目前是默认版本。下一个主要版本 dpl v2 将很快发布,我们建议您开始使用它。有关详细信息,请参见 我们的博客文章。您可以 在此处找到 dpl v2 文档。
Travis CI 可以在成功构建后自动将您的 npm 包发布到 npmjs.com 或其他类似 npm 的注册表。默认情况下,Travis CI 发布到 npmjs.com,但是,如果您在 package.json
中有 publishConfig.registry
键,那么 Travis CI 将发布到该注册表。
使用 npm 版本 2+ 发布到 npmjs.com 的最小 .travis.yml
配置如下
language: node_js
node_js:
- "12.13"
deploy:
provider: npm
email: "YOUR_EMAIL_ADDRESS"
api_key: "YOUR_AUTH_TOKEN"
您可以使用 travis
工具为您设置所有内容
$ travis setup npm
请记住,上面的命令必须在您的项目目录中运行,以便它可以为您修改 .travis.yml
。
NPM 身份验证令牌 #
您可以通过以下方式获取 NPM 身份验证令牌:
- 登录您的 NPM 帐户,并在
https://npmjs.net.cn/settings/USER/tokens
上生成一个新令牌,其中USER
是能够发布 npm 包的用户帐户的名称。 - 使用 NPM CLI 命令
npm adduser
创建用户,然后打开~/.npmrc
文件- 对于 NPM v2+,请使用
authToken
值。 - 对于 NPM ~1,请使用
auth
值。
- 对于 NPM v2+,请使用
始终 加密 您的身份验证令牌。假设您已安装 Travis CI 命令行客户端,您可以像这样操作
$ travis encrypt YOUR_AUTH_TOKEN --add deploy.api_key
要发布什么 #
您可能只想在发布包的新版本时才部署到 npm。为此,您可以告诉 Travis CI 只对标记的提交进行部署,如下所示
deploy:
...
on:
tags: true
如果您在本地标记提交,请记住运行 git push --tags
以确保您的标签已上传到 GitHub。
您可以使用 on 选项显式指定要从中发布的分支
deploy:
...
on:
branch: production
或者,您还可以配置 Travis CI 从所有分支发布
deploy:
...
on:
all_branches: true
从拉取请求触发的构建将永远不会触发发布。
发布构建工件 #
在您的测试运行完毕且在发布之前,Travis CI 将清理您所做的任何其他文件和更改。
这可能不是您想要的,因为您可能会生成一些也应该发布的工件。现在有一个选项可以跳过清理
deploy:
...
skip_cleanup: true
条件发布 #
当多次尝试时,部署问题 会报告。我们建议只使用 具有 on:
的条件发布 从一个作业进行部署。
标记发布 #
您可以使用 tag
选项自动添加 npm 分发标签
deploy:
...
tag: next
关于 .gitignore
的说明 #
请注意,如果 .npmignore
不存在,npm
部署将尊重 .gitignore
。这意味着,如果您的构建在 .gitignore
中列出的位置创建工件,则它们将不会包含在上传的包中。
有关更多详细信息,请参见 npm
文档。
如果您的 .gitignore
文件与您的构建创建的内容相匹配,请使用 before_deploy
更改其内容,或创建(可能是空的).npmignore
文件来覆盖它。
在部署前后运行命令 #
有时您想在部署之前或之后运行命令。您可以使用 before_deploy
和 after_deploy
阶段来完成此操作。这些将仅在 Travis CI 实际部署时触发。
before_deploy: "echo 'ready?'"
deploy:
..
after_deploy:
- ./after_deploy_1.sh
- ./after_deploy_2.sh
排查“npm ERR! 您需要付费帐户才能执行此操作。” #
npm 假设 作用域包 默认情况下是私有的。您可以通过将以下内容添加到您的 package.json
文件中,显式地告诉 npm 您的包是公共包,并避免此错误
"publishConfig": {
"access": "public"
},