Monorepo-Yarn 工作区“找不到模块或其相应的类型声明。”构建包后

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

我有一个使用 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
  }
}

node.js typescript monorepo yarn-workspaces
1个回答
0
投票

我有完全相同的问题,并通过在 dist 文件夹中手动创建丢失的 index.d.ts 文件并正确导出丢失的声明来修复它。一切似乎都设置正确。我想知道这是不是一个错误

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