Yarn 本地包依赖

Yarn local packages dependencies

我有以下文件夹结构:

~ (user home folder)
 - api
    ...
    - package.json
 - lib
    - libA
      ...
      package.json
    - libB
      ...
      package.json

libA/package.json中我有以下本地依赖

"dependencies": {
    "libB": "../libB",
  },

所以 libA 依赖于 libB。

现在我想在 api 项目中添加为本地包 libA。我执行 cd api && yarn add ../lib/libA 并收到以下错误 /Users/a_user/libB doesn't exist。我知道 yarn 被视为当前主管 ~/api 所以在读取 libA 的依赖项时它会看到 ../libB 并将其翻译为 ~/libB 而不是 ~/lib/libB

有没有不用绝对路径实现的方法?

是的,有,使用 yarn link。 Yarn link 允许你创建 symlinks 到本地项目。

转到文件夹 libB 和 运行:

yarn link

然后转到文件夹 libA 和 运行:

yarn link libB

注意libB 必须是 libB 文件夹 package.json 上的名称

然后您可以像往常一样要求您的 libB 代码:

const libB = require('libB')