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;

Relaterade artiklar