Skip to content

rewriteRelativeImportExtensions errors on relative import #61615

Closed
@JakobJingleheimer

Description

@JakobJingleheimer

πŸ”Ž Search Terms

rewriteRelativeImportExtensions, monorepo, relative import, file extension

πŸ•— Version & Regression Information

5.8.3

⏯ Playground Link

No response

πŸ’» Code

{
  "compilerOptions": {
    "allowImportingTsExtensions": true,
    "allowJs": true,
    "allowSyntheticDefaultImports": true,
    "checkJs": true,
    "esModuleInterop": true,
    "incremental": true,
    "isolatedModules": true,
    "lib": [ "dom" ],
    "module": "esnext",
    "moduleResolution": "bundler",
    "noImplicitAny": true,
    "resolveJsonModule": true,
    "skipLibCheck": true,
    "strictNullChecks": true,
    "verbatimModuleSyntax": true,
    "baseUrl": "./src",
    "rewriteRelativeImportExtensions": true,
    "outDir": "./build",
    "target": "es2022",
    "resolvePackageJsonExports": true,
    "resolvePackageJsonImports": true,
    "preserveConstEnums": true,
    "useDefineForClassFields": true
  },
  "files": […],
  "include": [
    "src/**/*.ts"
  ],
  "exclude": [
    "node_modules"
  ]
}

πŸ™ Actual behavior

TSC errors (and the error is kind of broken):

error TS2877: This import uses a '.ts' extension to resolve to an input TypeScript file, but will not be rewritten during emit because it is not a relative path.

Found 1 error.

πŸ™‚ Expected behavior

It should work

Additional information about the issue

This occurs in a monorepo like so:

pkgs/
  A
    src/…
    package.json
    tsconfig.json
  B
    src/…
    package.json
    tsconfig.json
  Shared
    src/…
    package.json
    tsconfig.json (config only for VS Code)
tsconfig.json
package.json

A & B get built and published. Shared does not (it is only ever consumed directly by A or B).

// pkgs/A/src/main.ts

import sql from '../../shared/src/helpers/sql.ts';

running tsc in pkgs/A fails, erroneously claiming ../../shared/src/helpers/sql.ts is not a relative path.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions