Windows 11
WSL 2 terminal
我的基本目录结构如下所示:
backend
src
package.json
frontend
apps
admin
src
package.json
user-type-1
src
package.json
core
utils
common
package.json
package.json
yarn.lock
我的根 package.json 看起来像这样:
{
"private": true,
"name": "root",
"workspaces": {
"packages": [
"backend",
"frontend"
]
},
"engines": {
"node": "^20.5.1"
},
"packageManager": "[email protected]",
"scripts: { ... }
"dependencies": {
"typescript": "^5.1.6",
...
}
...
}
我的后端 package.json 看起来像这样:
{
"private": true,
"name": "@project/backend",
"version": "1.0.0",
"scripts: { ... }
...
}
我的前端 package.json 看起来像这样:
{
"name": "@project/frontend",
"private": true,
"version": "1.0.0",
"workspaces": {
"packages": [
"apps/admin",
"apps/user-type-1",
"core"
]
},
"engines": {
"node": "^20.5.1"
},
"packageManager": "[email protected]",
"scripts: { ... },
"dependencies": {
"@project/backend": "1.0.0",
...
}
...
}
后端有很多前端需要的东西,所以我想添加后端和前端的依赖。
我尝试运行以下命令:
yarn workspace @project/frontend add @project/[email protected]
import
import
从前端导入后端之前是有效的,所以我猜这不是纱线的问题,而是我所做的一些更改的问题。
然而,即使在返回
package.json
后,我也无法找出导致纱线失败的原因。
问题似乎与yarn wsl 2适配有关。
我不确定 Ubuntu 上是否也会发生同样的情况,但显然,yarn 在 wsl 上运行时不会创建文件夹(不确定是否是故意的)。
一旦您在 wsl 上运行
yarn install
,即使在 powershell 上重新运行该命令,本地 node_module 文件夹也将保持为空,除非您删除yarn.lock 和 node_modules。
在 MacOS 上克隆并测试后,没有出现此类问题。
我猜删除yarn.lock并在powershell而不是wsl上重新运行
yarn install
可以算作解决方案,但这听起来不对......