【问题标题】:Yarn local packages dependenciesYarn 本地包依赖项
【发布时间】:2018-07-19 01:21:18
【问题描述】:

我有以下文件夹结构:

~ (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

没有绝对路径有没有办法实现它?

【问题讨论】:

    标签: node.js npm yarnpkg


    【解决方案1】:

    是的,有,使用yarn link。基本上,yarn link 允许您创建指向本地项目的符号链接。

    转到文件夹libB 并运行:

    yarn link
    

    然后进入文件夹libA并运行:

    yarn link libB
    

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

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

    const libB = require('libB')
    

    【讨论】:

    • 非常感谢。一件事我不明白。我应该有 libA 的内部依赖项 libB 还是喜欢就足够了?
    • 我尝试了你的建议,但是当我在 api 文件夹中执行yarn install 时得到Error: Cannot find module 'libB'
    • 你需要在API文件夹中运行yarn link libB
    • API 使用 libAlibA 使用 libB。我在libB 内部yarn link,然后在libA 内部yarn link libB。然后在api 里面我使用了yarn add ../lib/A。那失败了。尽管使用了yarn link libB,但我必须在libA 内使用yarn add libB 才能使其工作
    • 所以你还需要在 libA 中执行 yarn linkinside 然后在 API 中运行 yarn link libA
    猜你喜欢
    • 1970-01-01
    • 2018-08-08
    • 1970-01-01
    • 2022-01-17
    • 2021-09-15
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 2020-12-06
    相关资源
    最近更新 更多