node.js - Jest nu rezolvă importurile locale ESM
Am un proiect Typescript cu două fișiere, a.ts și b.ts. Import pe acesta din urmă în a.ts astfel
import * from "./b.js"
Acest lucru funcționează bine. Typescript înțelege. Totuși, când rulez Jest (folosind ts-jest), primesc
Cannot find module './b.js' from 'a.ts'
Cum pot să fac Jest să înțeleagă că importul .js este încă un fișier .ts atunci când rulez testul?
Răspuns #1
Deja l-am găsit. A trebuit să adaug următoarele în jest.config.ts
moduleNameMapper: {
'^(\\.{1,2}/.*)\\.js$': '$1',
},
Acesta mapează fișierele .js la o versiune fără extensie, pe care Jest (adică ts-node în fundal) o poate găsi apoi.
Notă: este necesar să ai preset: 'ts-jest', dar deja îl aveam înainte.
Răspunsul #2
Există multe motive pentru care eroarea „nu se poate găsi modulul” poate apărea în TypeScript:
- Pachetul nu este instalat.
- Este ceva în neregulă cu folderul node_modules.
- Importul pachetului conține o greșeală de ortografie.
- Ceva nu este în regulă cu fișierul tău tsconfig.json.
