gpt4 book ai didi

node.js - 如何设置 Travis CI 使用链接(本地)包?

转载 作者:太空宇宙 更新时间:2023-11-04 01:49:37 27 4
gpt4 key购买 nike

我在 myPackage 中使用 npm link myDependency,这样我就可以同时处理两者(而不是在每次更改后发布 myDependency,然后更新 myPackage 进行测试。)

我希望能够将 Travis CI 与 myPackage 一起使用,但是,正如人们所预料的那样(我实际上忘记了,但在尝试构建后它变得非常明显):在 Travis 上运行 npm install 将无法安装链接的包。

那么,我能做什么呢?我看到有人建议使用 Docker 容器,但这感觉像是很多基础设施,而且我对 Docker 没有经验。我想到的另一个选择是添加一个预安装脚本,将 myDependency 存储库的 dev 分支克隆到 node_modules 文件夹中。

首先,我确信我不是第一个同时开发两个软件包的人,因此必须就如何完成这件事达成一些共识。

最佳答案

我通过在 Travis 上复制我的开发设置解决了这个问题。

解决这个问题的关键是为 Travis 提供访问 GitHub 的方法。为此,请登录 GitHub 并转到个人访问 token 页面。

您将看到一个表单,其中包含一个字段,其中包含您的 token 名称以及您想要授予访问权限的权限。填写名称,例如“Travis CI Pull Repo”,然后选择“repo”部分。其他都不是必需的,因此无需授予对它们的访问权限。页面底部有一个绿色按钮“生成 token ”。

返回代码编辑器,在项目的根目录中创建一个 .travis.yml 文件(如果您还没有)。我们将在下一步中使用 RubyGem,因此如果您没有安装 Ruby gems,则需要下载它。您可以通过在终端中运行 gem -v 来检查是否已安装它。

如果这样做,请在终端中运行以下命令来安装 Travis RubyGem:

gem install travis

接下来,在终端中,确保您正在项目的根目录中工作,并使用 Travis gem 将访问 token 添加到您的 .travis.yml 文件中:

travis encrypt GH_TOKEN="token-from-github-goes-here" --add

如果成功,您的 .travis.yml 文件应该保存一堆随机文本和加密 token :

env:
global:
secure: "lots-of-seemingly-random-characters"

就是这样! Travis 现在应该能够拉取(如果您喜欢的话,也可以推送)到您的 GitHub 存储库。

显然,您的 .travis.yml 文件可能与我的有很大不同,但最基本的是,我像这样设置 .travis.yml:

language: node_js
node_js:
- '6'
cache:
directories:
- node_modules
install:
- npm install
script:
- npm run lint
- npm run test
env:
global:
secure: "lots-of-seemingly-random-characters"

要添加依赖项的克隆和链接,请使用以下命令添加 before_install 部分:

before_install:
- git config credential.helper "store --file=.git/credentials"
- echo "https://${GH_TOKEN}:@github.com" > .git/credentials
- cd ..
- git clone https://github.com/my-name/my-dependency.git my-dependency
- cd my-dependency
- npm install
- npm link
- cd ../my-main-project

这实际上是在做什么?

  1. 我们将 Git 配置为使用我们保存的访问 token 。
  2. 我们向上一个目录并将存储库克隆到与存储库同名的新文件夹中。
  3. 我们进入存储库并安装其依赖项。我们创建了一个全局 NPM 链接。
  4. 最后,我们回到主项目(我们正在运行 Travis 的项目)。请注意,此名称必须与 GitHub 上的存储库名称匹配,因为这是 Travis 将使用的名称。

此外,我们需要实际使用上面创建的链接,因此在安装部分添加以下行:

install:
- npm install
- npm link my-dependency

确保将 npm 链接放在 npm install 之后,因为默认情况下 npm install 会删除所有链接(对于我们这些使用 npm link 的人来说,这是一个非常烦人的错误)。

关于node.js - 如何设置 Travis CI 使用链接(本地)包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50198047/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com