Yarn本地包依赖项

Lax*_*ana 13 node.js npm yarnpkg

我有以下文件夹结构:

~ (user home folder)
 - api
    ...
    - package.json
 - lib
    - libA
      ...
      package.json
    - libB
      ...
      package.json
Run Code Online (Sandbox Code Playgroud)

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

"dependencies": {
    "libB": "../libB",
  },
Run Code Online (Sandbox Code Playgroud)

所以libA依赖于libB.

现在我想在内部api项目中添加为本地包libA.我执行cd api && yarn add ../lib/libA,我得到以下错误/Users/a_user/libB doesn't exist.我知道纱线看作当前导演~/api所以当读取libA它的依赖性时,它会看到../libB并将其翻译为~/libB而不是作为~/lib/libB

无论如何没有绝对的路径来实现它?

Fab*_*nes 28

是的,使用纱线链接.基本上,纱线链接允许您为本地项目创建符号链接.

转到该文件夹libB并运行:

yarn link
Run Code Online (Sandbox Code Playgroud)

然后转到该文件夹libA并运行:

yarn link libB
Run Code Online (Sandbox Code Playgroud)

注意:libB必须是文件夹package.json内部的名称libB

然后您可以libB照常使用您的代码:

const libB = require('libB')
Run Code Online (Sandbox Code Playgroud)

  • 这个答案有针对yarn 2的版本吗?如果没有附加参数,新纱线不会执行纱线链接。 (3认同)