TypeScript: __dirname-värde?
Min mappstruktur ser ut så här:
app
└─ tsFolder
└─ XX.ts
Kod i XX.ts-filen:
var __dirname: string;
console.log("__dirname: " + __dirname); // the output is undefined.
Jag har försökt: genom att kommentera ut koden var __dirname: string;, är värdet på __dirname: ...../app istället för att peka på den aktuella mappen som ...../app/tsFolder.
Kan någon förklara det?
Svar #1
Bara spring
npm install --save-dev @types/node
Och om det inte fungerar av sig självt, lägg till
"types": ["node"]
till ditt tsconfig.jsons compilerOptions-fält.
Svar #2
Jag antar att du syftar på NodeJS globala variabel __dirname.
Om det pekar på ..../app betyder det att din XX.ts kompileras till mappen ..../app. Och när den resulterande js-filen körs: __dirname pekar på dess (js-filens) plats.
Och självklart bör du inte deklarera en ny var __dirname.
Använd istället antingen NodeJS-typningar eller deklarera det manuellt så här:
declare var __dirname;
