Typescript-feil etter bytte fra npm til pnpm


Jeg prøver å bytte et legacy (veldig gammeldags Angular JS) prosjekt fra npm til pnpm og sliter med TypeScript-feil. De aller fleste er ting som error TS2339: Property 'mock' does not exist on type 'IAngularStatic'. Når jeg bruker npm får jeg en ren TypeScript-transpilering, og jeg ønsker å beholde det på den måten.

Min tsconfig.json er

{
  "compilerOptions": {
    "baseUrl": ".",
    "module": "commonjs",
    "target": "ES2017",
    "sourceMap": true,
    "inlineSources": true,
    "allowSyntheticDefaultImports": true
  },
  "exclude": [
    "node_modules"
  ]
}

Jeg har prøvd å legge til import "angular";import "angular-mocks"; og import "@types/angular";import "@types/angular-mocks";, men får error TS2686: 'angular' refererer til en UMD-global, men den nåværende filen er en modul. Vurder å legge til en import i stedet.

Jeg har også prøvd ulike løftealternativer, men på en noe tilfeldig måte siden jeg ikke har en god forståelse av det.

Kan noen vise meg riktig retning?

Rediger: For å tydeliggjøre, hvis jeg gjør

rm -rf node_modules
rm package-lock.json pnpm-lock.yaml npm-shrinkwrap.json
npm i --ignore-scripts
tsc

Jeg får ingen feil (men det tar evigheter) mens

rm -rf node_modules
rm package-lock.json pnpm-lock.yaml npm-shrinkwrap.json
pnpm i --ignore-scripts
tsc

gir relativt raskt rundt 170 tsc-feil, hvorav langt de fleste er TS2339-feil.

Svar #1

Problemet her ble løst ved å bruke preserveSymLinks https://www.typescriptlang.org/tsconfig#preserveSymlinks

Relaterte artikler