NPM 发布
此页面记录了使用下一个主要版本 dpl v2 的部署,该版本目前处于测试版阶段。请参阅 我们的博文 以获取详细信息。当前默认版本为 dpl v1。请查看 此处 dpl v1 文档。
请务必阅读 v2 部署概述。
Travis CI 可以在构建成功后自动发布到 NPM 或其他类似 npm 的注册表。
对于最小配置,请将以下内容添加到您的 .travis.yml
中
deploy:
provider: npm
api_token: <encrypted api_token>
edge: true # opt in to dpl v2
状态 #
对 npm 部署的支持是 *稳定的*。
已知选项 #
使用以下选项进一步配置部署。
电子邮件 |
npm 帐户电子邮件 - 类型:字符串 |
api_token |
npm api 令牌 - **必需**、**机密**、类型:字符串,别名:api_key ,注意:可以从您的本地 ~/.npmrc 文件中检索,请参阅:https://docs.npmjs.net.cn/creating-and-viewing-authentication-tokens |
访问 |
访问级别 - 类型:字符串,已知值:public 、private |
注册表 |
npm 注册表 URL - 类型:字符串 |
src |
要发布的目录或 tarball - 类型:字符串,默认值:. |
标签 |
要添加的发布标签 - 类型:字符串 |
run_script |
从 package.json 运行给定脚本 - 类型:字符串或字符串数组,注意:跳过运行 npm publish |
dry_run |
执行测试运行,而不上传到注册表 - 类型:布尔值 |
auth_method |
身份验证方法 - 类型:字符串,已知值:auth |
共享选项 #
清理 |
在部署之前清理 Git 工作目录中的构建工件 - 类型:布尔值 |
运行 |
部署成功后要执行的命令 - 类型:字符串或字符串数组 |
环境变量 #
如果以 NPM_
为前缀,则所有选项都可以作为环境变量给出。
例如,api_token
可以作为 NPM_API_TOKEN=<api_token>
给出。
保护机密 #
机密选项值应作为构建配置(.travis.yml
文件)中的加密字符串或存储库设置中的环境变量给出。
可以在存储库的设置页面或使用 travis env set
设置环境变量
travis env set NPM_API_TOKEN <api_token>
为了在将选项值添加到 .travis.yml
文件时对其进行加密,请使用 travis encrypt
travis encrypt <api_token>
或使用 --add
直接将其添加到 .travis.yml
文件中。请注意,此命令必须在存储库的根目录中运行
travis encrypt --add deploy.api_token <api_token>
NPM 身份验证令牌 #
可以使用以下方法获取您的 NPM 身份验证令牌
登录到您的 NPM 帐户,并在 https://npmjs.net.cn/settings/<user>/tokens
生成新令牌,其中 <user>
是您的用户帐户的名称。
或使用 NPM CLI 命令 npm adduser
创建用户,然后打开 ~/.npmrc
文件
- 对于 NPM v2+,请使用
authToken
值。 - 对于 NPM ~1,请使用
auth
值。
标记发布 #
您可以使用 tag
选项自动添加 npm 发布标签
deploy:
# ⋮
tag: next
关于 .gitignore 的说明 #
请注意,如果 .npmignore
不存在,则 npm
部署将遵守 .gitignore
。这意味着,如果您的构建在 .gitignore
中列出的位置创建工件,则它们将不会包含在上传的包中。
有关更多详细信息,请参阅 npm
文档。
如果您的 .gitignore
文件与构建创建的内容匹配,请使用 before_deploy
更改其内容,或创建(可能为空).npmignore
文件以覆盖它。
故障排除“npm ERR! 您需要付费帐户才能执行此操作。” #
npm
假定 作用域包 默认情况下是私有的。您可以通过将以下内容添加到 package.json
文件中来明确告诉 npm 您的包是公共包,并避免此错误
"publishConfig": {
"access": "public"
},
部署标签 #
最有可能的是,您只希望在您的包的新版本被创建时进行部署。
为此,您可以包含一个 tags
条件,如下所示
deploy:
provider: npm
# ⋮
on:
tags: true
如果在本地标记提交,请记住运行 git push --tags
以确保您的标签已上传到 GitHub。
Pull Request #
请注意,Pull Request 构建完全跳过部署步骤。