带有nodeLinker的Yarn v3工作区:node-modules不会创建node_modules/并且无法启动包

问题描述 投票:0回答:1

即使我的yarnrc.yml中有

nodeLinker: node-modules
,它仍然没有创建node_modules文件夹。 它仍然创建 .pnp.cjs 和 .pnp.loader.mjs 文件以及 .yarn 文件夹。 根据 yarn 工作空间文档,node_modules 文件夹是使用工作空间所必需的。

当我尝试在我的单个包目录之一中运行

yarn start
时,它说
Usage Error: Couldn't find the node_modules state file - running an install might help (findPackageLocation)
。 当我跑步时它也说同样的事情
yarn workspace package-b start

我正在使用yarn v3.3.1和node v19.2.0。

这是我的目录结构:

root
|- package.json
|- yarnrc.yaml
|- package-a
   |- package.json
   |- index.ts
|- package-b
   |- package.json
   |- index.ts

这是我的根package.json:

{
  "name": "my-workspace",
  "private": true,
  "workspaces": [
    "package-a",
    "package-b"
  ]
}

package-a package.json:

{
  "name": "package-a",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "start": "microbundle-crl watch --no-compress --format modern,cjs",
    ...
  },
  "dependencies": {
    "cross-env": "5.0.5"
  }
}

package-b package.json:

{
  "name": "package-a",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "start": "react-scripts start",
    ...
  },
  "dependencies": {
    "cross-env": "5.0.5",
    "package-a": "1.0.0"
  }
}

package-a 中的index.ts

export const MY_CONSTANT = 5;

b 包中的index.ts

import * as PackageA from 'package-a';
console.log(PackageA);

我的根yarnrc.yml:

nodeLinker: node-modules

唯一有效的方法是,如果我在 package-a 中

yarn install; yarn start
,然后在 package-b 中
yarn install; yarn start
。 这会在两个包中创建 node_modules/ 文件夹。

预期: 运行

yarn install
yarn workspace package-b start
将成功运行 package-b。

reactjs node-modules yarnpkg yarn-workspaces
1个回答
0
投票

正确的文件名是 .yarnrc.yml 而不是yarnrc.yml

© www.soinside.com 2019 - 2024. All rights reserved.