filesystemwatcher - PHPStorm IDE TypeScript-filövervakare


Som standard i PHPStorm 6 skapas de kompilerade *.js-filerna i samma mapp som *.ts-filerna.

Det jag behöver är att de kompilerade *.js och *.d.js ligger i en annan undermapp än samma som *.ts-filerna.

Sammanfattningsvis:

  • Jag har rotmappen "Project"

  • Jag har en undermapp "ts" där alla *.ts-filer finns.

  • Jag har en undermapp "scripts" där jag vill att de kompilerade *.js och *.d.js ska vara.

Hur kan jag åstadkomma detta med PHPStorm TypeScript-filövervakare?

Jag har försökt flera makron som i Utdatafältet i dialogrutan för Filvakt som:

$FileParentDir$/scripts/$FileNameWithoutExtension$.js:$FileParentDir$/scripts/$FileNameWithoutExtension$.js.map

men ingen av dem fungerade.

Svar #1

Fältet 'Output paths' i File Watcher-konfigurationen talar bara om för IDE:n var den ska leta efter skapade filer (används för automatisk synkronisering) och har ingen betydelse för programmet som körs. TypeScript-kompilatorn har alternativet --out som talar om för kompilatorn var den ska lägga de genererade filerna

Var snäll och prova följande:

Argument: --sourcemap $FileName$ --out $ProjectFileDir$/scripts/$FileNameWithoutExtension$.js

Arbetskatalog: $FileDir$

Utdata Vägar: $ProjectFileDir$/bin/$FileNameWithoutExtension$.js:$ProjectFileDir$/bin/$FileNameWithoutExtension$.js.map

Hoppas detta hjälper

Svar #2

Tack vare @CrazyCoder:s referenser lyckades jag (äntligen!) få detta att fungera bra.

Utdatafilens sökväg måste du ange i Arguments-parametern, inte i Output-sökvägen.

Tricket var att --out inte accepterar mappvägar, istället måste du använda filvägen.

Se bilden som referens för en fullt fungerande konfiguration.

I denna konfiguration är organisationen:

  • ts/: *.ts-filer.

  • scripts/: kompilerade *.js & *.js.map & *.d.ts-filer.

OBS: I nyare versioner av kompilatorn är den korrekta parametern declaration (utan avslutande s) och inte declarations.