node.js - Typescript odefinierad konstant under felsökningssession
Jag har följande Node.js-projekt med Typescript som fungerar helt utan problem. Men under en felsökningssession märkte jag att exporterade konstanter från en annan Typescript-fil alltid är undefined:
Jag misstänker lite att detta beror på den tomma names-arrayen i de genererade source maps:
{
"version": 3,
"file": "main.js",
"sourceRoot": "",
"sources": [
"../src/main.ts"
],
"names": [], // <---- empty
"mappings": ...details omitted...
}
Finns det ett sätt att generera en korrekt source map från en Typescript-kompilator eller kanske en annan lösning för att lösa detta felsökningsproblem? Nedan är min tsconfig.json:
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"experimentalDecorators": true,
"target": "es2017",
"noImplicitAny": true,
"moduleResolution": "node",
"importHelpers": true,
"sourceMap": true,
"allowJs": true,
"outDir": "dist",
"baseUrl": ".",
"typeRoots": [
"./node_modules/@types"
],
"types": [
"node"
],
"paths": {
"*": [
"node_modules/*"
]
}
},
"include": [
"src/**/*"
]
}
Jag använder Typescript 3.7.5.
Projektet kördes helt enkelt genom Webstorms Node-runner:
Sidnotering: Detta problem uppstod inte när jag felsökte en Angular-applikation som körs genom ng serve. Osäker på vad ng serve gör annorlunda än standard tsc.
Svar #1
Ja, det tomma "names": [] i sourcemaps är problemet - tsc kompilerar din namngivna import till category_1.ANIMAL_TYPE, och det finns inga namn-mappningar, så variabeln är undefined i debuggern... Du kommer att stöta på samma problem när du debuggar i VSCode, till exempel:
Du kan inspektera category_1-objektet för att se värdena:
Jag är inte medveten om något sätt att ändra tsc-beteende :(



