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
访问 访问级别 - 类型:字符串,已知值:publicprivate
注册表 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 构建完全跳过部署步骤。

另请参阅 #