我有一个使用 Yarn Workspace 和 Typescript 的 monorepo 项目
文件夹结构
packages
--- common
------ src
------ package.json
------ tsconfig.json
--- app
------ src
------ package.json
------ tsconfig.json
package.json
tsconfig.json
当我在公共端运行脚本
build
时:yarn build
yarn workspace @project/common build
它重建了
common
包,但 app
不再识别 common
并且打字稿在所有导入上抛出以下错误:
Cannot find module '@project/common' or its corresponding type declarations.
消除语法错误的唯一方法是在 vscode 中重新加载窗口或重新加载 Typescript 项目。
我在实施过程中做错了什么?我是不是错过了什么?
规格
打字稿:5.4.2
纱线:4.1.0
节点:18.x
package.json
{
"name": "@project/project",
"version": "1.0.0",
"private": true,
"engines": {
"node": "18.x"
},
"workspaces": {
"packages": [
"packages/*"
]
},
"installConfig": {
"hoistingLimits": "dependencies"
},
"scripts": {
// ...scripts
},
"devDependencies": {
// ...dev dependencies
},
"packageManager": "[email protected]"
}
tsconfig.json
{
"compilerOptions": {
"allowJs": true,
"esModuleInterop": true,
"resolveJsonModule": true,
"sourceMap": true,
"declaration": true,
"strict": true,
"allowSyntheticDefaultImports": true,
"skipLibCheck": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"strictPropertyInitialization": false,
"ignoreDeprecations": "5.0",
"removeComments": true,
"allowUnreachableCode": false
}
}
packages/common/package.json
{
"name": "@project/common",
"private": true,
"version": "1.0.0",
"main": "build/index.js",
"types": "build/index.d.ts",
"engines": {
"node": "18.x"
},
"scripts": {
"build": "rm -rf ./build && tsc -p ."
},
"dependencies": {
// ...dependencies
},
"devDependencies": {
// ...dev dependencies
}
}
packages/app/package.json
{
"name": "@project/app",
"private": true,
"version": "1.0.0",
"engines": {
"node": "18.x"
},
"scripts": {
// ...scripts
},
"dependencies": {
"@project/common": "*",
// ...dependencies
},
"devDependencies": {
// ...dev dependencies
}
}
我有完全相同的问题,并通过在 dist 文件夹中手动创建丢失的 index.d.ts 文件并正确导出丢失的声明来修复它。一切似乎都设置正确。我想知道这是不是一个错误