Typescript编译器在Lerna monorepo的一个包中生成一个单独的声明文件。

18 浏览
0 Comments

Typescript编译器在Lerna monorepo的一个包中生成一个单独的声明文件。

项目结构:\n

    \n

  • 包\n
      \n

    • front
    • \n

    • library
    • \n

    \n

  • \n

\nlibrary tsconfig.json文件\n{\n \"include\": [\n \"**/*.js\",\n \"additional-types.d.ts\"\n ],\n \"exclude\": [\n \"**/*-test.js\",\n \"node_modules\"\n ],\n \"compilerOptions\": {\n \"moduleResolution\": \"node\",\n \"allowJs\": true,\n \"declaration\": true,\n \"emitDeclarationOnly\": true,\n \"skipLibCheck\": true,\n \"module\": \"AMD\",\n \"outFile\": \"global.d.ts\",\n }\n}\n\n然后在front包中导入生成的文件:\n

/// 

\n问题是声明路径不正确:\n

declare module "libraries/utils/generateFrontPath/index" {
  // ...
}

\n而不是:\n

declare module "@Company/library/libraries/utils/generateFrontPath" {
  // ...
}

\n包名称(@Company/library)丢失,并且末尾有一个不应该存在的/index。\n如何修复这个问题?

0
0 Comments

在Lerna monorepo的一个包中,TypeScript编译器只会生成一个声明文件。

有人在处理相同问题时提供了一个解决方法,即在TypeScript脚本文件夹(即tsconfig文件的位置)中添加一个空的TypeScript文件来满足TypeScript编译器的要求。

以下是解决方法的具体步骤:

1. 在项目的TypeScript脚本文件夹中(通常是tsconfig文件所在的位置),创建一个空的TypeScript文件。

2. 编译项目,确保TypeScript编译器能够找到并处理这个空文件。

3. 运行编译后的项目,检查是否仍然存在原来的问题。

通过这个解决方法,可以满足TypeScript编译器的要求,解决生成单个声明文件的问题。

希望这个解决方法能够帮助到你!

0