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