0

我确定其他人也有这个工作流程,所以我一定在这里遗漏了一些东西。

如何开发新版本的包,将其链接到另一个应用程序中进行测试,然后安装另一个(不相关的)包?

我做了什么:

  1. 运行git clone git@package-to-update && cd package-to-update
  2. 编辑包,更新package-to-update/package.json版本为2.0.0.
  3. 更新my-app/package.json使用package-to-update@2.0.0
  4. cd package-to-update && npm link && cd my-appp && npm link package-to-update.
  5. 测试一下my-app,看看package-to-update@2.0.0问题解决了,来个小聚会。
  6. 推送到package-to-update上游,创建合并请求,并等待维护者合并我的更改。
  7. 同时使用我的本地链接版本,因为它是我正在开发的功能所必需的。
  8. 注意我需要另一个包other-unrelated-packagemy-app
  9. 运行cd my-app && npm install other-unrelated-package
  10. NPM 失败是因为它试图拉取package-to-update@2.0.0尚未发布的内容。
  11. 哭。

每次您想要运行以下过程的唯一选择是npm install

  1. package-to-update中降级my-app/package.json
  2. 运行npm install other-package
  3. 运行npm link package-to-update
  4. package-to-updatemy-app/package.json.
4

1 回答 1

0

我一般只npm link用于开发。如果我想使用本地版本而不必处理重新链接,我会通过路径而不是版本来安装它。

npm install /file/path/to/your/module

然后你会file:在你的package.json:

    "slug": "file:../../slug"

在这种情况下,后续npm install将不会搜索注册表。(因为它会在以后npm install运行时避免注册表,这也意味着您需要记住在发布带有补丁的版本时将其更改回注册表!)

我还没有测试过,但是这个方法可能需要你只关心它作为一个直接依赖而不是另一个依赖的依赖。根据您上面的工作流程,情况似乎如此,但在这里为其他人提及。

于 2020-10-31T17:11:25.170 回答