纱线不从工作区安装包,而是尝试使用turborepo从npmjs中拉取

Mic*_*elB 5 monorepo yarnpkg yarn-workspaces turbo turborepo

版本:

"packageManager": "yarn@1.22.19"

我的项目基于该npx create-turbo@latest命令。

我的 /packages 文件夹中有eslint-config-custom一个tsconfig项目,我在三个 Nodejs 应用程序中引用了该项目:

 "tsconfig": "workspace:*",
 "eslint-config-custom": "workspace:*",
Run Code Online (Sandbox Code Playgroud)

在我的根 package.json 中定义了工作区:

  "workspaces": [
    "apps/*",
    "packages/*"
  ],
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我运行yarnyarn install在根文件夹中时,yarn 会弹出,告诉我选择匹配的版本:

yarn install v1.22.19
info No lockfile found.
[1/5] Validating package.json...
[2/5] Resolving packages...
Couldn't find any versions for "eslint-config-custom" that matches "workspace:0.0.0"
? Please choose a version of "eslint-config-custom" from this list: (Use arrow keys)
> 0.0.0
Run Code Online (Sandbox Code Playgroud)

对于tsconfig依赖项也是如此,那么它只列出主注册表上具有相同名称的包的可用版本npmjs.com

如何让纱线使用工作区中的依赖项?

此外,我如何使用范围来处理它们,而不是tsconfig从安装@myOrg/tsconfig

Jae*_*Jae 8

  1. 在您的应用程序中package.json,尝试这些
 "tsconfig": "*",
 "eslint-config-custom": "*",
Run Code Online (Sandbox Code Playgroud)

在 中pnpm,软件包是通过 安装的workspaces:*,但在其他软件包管理器中,您只能通过 进行安装*。我们正在使用yarn,所以*可以工作。

看一下官方示例


  1. 如果我理解正确的话,附加问题的答案将发布在 github 讨论中。

package.jsonname字段中,包括您的组织范围。( @myOrg/package-name) 但不要更改文件夹的结构或其名称。