ESBuild correctly follows the TS behaviour of the extends field in tsconfig.json looking into the exports field of a dependency, such as documented in #3058. For example this is resolved:
"extends": "@repo/tsconfig/base"
when the package.json of @repo/tsconfig exports ./base:
However, if @repo/tsconfig/base includes a compilerOptions.paths property, these aliases cannot be resolved when building and the build fails. The only way for it to be resolved is to instead change the original extends field to a relative import, such as:
"extends": "../../tooling/typescript/base.json"
Paths should be resolved even when extending from a tsconfig from a package.
ESBuild correctly follows the TS behaviour of the
extends
field intsconfig.json
looking into the exports field of a dependency, such as documented in #3058. For example this is resolved:when the
package.json
of@repo/tsconfig
exports./base
:However, if
@repo/tsconfig/base
includes acompilerOptions.paths
property, these aliases cannot be resolved when building and the build fails. The only way for it to be resolved is to instead change the original extends field to a relative import, such as:Paths should be resolved even when extending from a tsconfig from a package.
Please see this reproduction repo