【问题标题】:How to test a monorepo locally?如何在本地测试 monorepo?
【发布时间】:2021-05-14 23:59:22
【问题描述】:

我有一个大项目,它是一个由多个脚本和库组成的 monorepo,它的结构如下:

package.json // "private":true
 \packages
    \comp1
       \package.json // an actual component
    \comp2
       \package.json // an actual component
    \comp3
       \package.json // an actual component

我使用yarn pack 制作了monorepo.tgz

然后我做了一个测试应用,其package.json 看起来像这样:

 "scripts": {
    // this is a script in one of the monorepo's components
    "start": "ui-build --bundle --watch -p 3000"
  }
  "dependencies": {
    "comp1": "../monorepo/monorepo.tgz",
    "comp2": "../monorepo/monorepo.tgz",
    "comp3": "../monorepo/monorepo.tgz",
  ...

但它不起作用,当我运行 start 时它抱怨 ui-build: command not found。 如何在本地测试这个 monorepo 以尽可能地模拟已发布的 npm 包?

【问题讨论】:

  • 你试过 npm / yarn install 了吗?
  • @pythan 是的,它执行得很好,我看到我在运行yarn start时提到的错误

标签: javascript npm yarnpkg package.json


【解决方案1】:

使用npm link(或yarn link),您可以从本地开发环境“安装”软件包。

为此,您首先在要安装的包的目录中运行npm link,因此在\packages\comp1 中。然后在你的 testapp 中运行npm link comp1。这将安装您的软件包。对您要安装的任何其他人重复此操作。

更多信息: https://docs.npmjs.com/cli/v6/commands/npm-link https://classic.yarnpkg.com/en/docs/cli/link/

【讨论】:

    【解决方案2】:

    经过一些研究,我发现https://verdaccio.org/ 是无需部署到 npm 存储库即可测试库的最佳工具

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-23
      • 2017-07-23
      • 2010-12-16
      • 2020-04-18
      • 2018-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多