首页 > 解决方案 > 将 monorepo 包放在包文件夹下是一种约定,还是 yarn 工作区期望这样?

问题描述

我的 monorepo 文件夹结构看起来像这样,但我没有跨应用程序导入来为纱线工作区工作,也就是说,我不能从sharedtoapp1app2.

./
  app1
  app2
  shared
  server
  package.json

我见过的几乎所有其他工作区都包含一个包文件夹,这是必需的还是只是一个约定?在这种情况下,我的文件夹结构如下所示:

./
  packages
    app1
    app2
    shared
    server
  package.json

我是否需要重构工作区才能正常工作?

标签: yarn-workspaces

解决方案


这只是一个约定。您需要列出您的workspacesin package.json

  "workspaces": [
    "app1",
    "app2",
    "shared",
    "server"
  ],

约定让您使用 glob(并且可能简化了您希望在所有包中运行的其他一些npm/命令):yarn

  "workspaces": ["packages/*"],

推荐阅读