即使我的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。
正确的文件名是 .yarnrc.yml 而不是yarnrc.yml