tsc - TypeScript kompilera och behåll kommentarer


Jag gillar att ha mina kommentarer intakta i den resulterande javascript-filen, som standard tar kompilatorn bort dem. Finns det en tsc-parameter för det? (Användningsfallet är att behålla /// reference path's=... för chutzpah enhetstestning.)

Svar #1

Sedan 2015 kan du skapa en tsconfig.json i ditt projekt och lägga till "removeComments": false i dess "compilerOptions"-egenskap för att behålla dina kommentarer i de resulterande JavaScript-filerna.

1. Skapa filen tsconfig.json för ditt projekt från din terminal (om det behövs)

tsc -init

2. Lägg till "removeComments": false i din tsconfig.json-fil inne i "compilerOptions"-egenskapen

I slutet bör du förvänta dig att innehållet i din tsconfig.json-fil ser ut så här:

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es5",
        "noImplicitAny": false,
        "sourceMap": false,
        "removeComments": false
    },
    "exclude": [
        "node_modules"
    ]
}

3. Kompilera din .ts-fil till en .js-fil från din terminal

  • Använd tsc myFile.ts för att behålla dina kommentarer
  • Använd tsc --removeComments myFile.ts för att ta bort dina kommentarer

Du kan lära dig mer om tsconfig.json kompilatoralternativ på Typescriptlang.orgs tsconfig.json-sida.

Dessutom, enligt Typescript-dokumentationen, kommer inställning av true eller false på egenskapen "removeComments" inte att påverka upphovsrättshuvudskommentarer som börjar med /*!. Därför kommer de alltid att visas i dina .js-filer.

Svar #2

Kommentarer som börjar med /*! bevaras.

exempel:
/*! denna kommentar förblir oförändrad */
/* men denna kommer att tas bort */

Svar #3

Ja, -c (eller --comments) alternativet;

Syntax: tsc [alternativ] [fil ..]

Exempel: tsc hello.ts
tsc --out foo.js foo.ts
tsc @args.txt

Alternativ:
   -c, --comments        Skriv ut kommentarer till utdata
...

Svar #4

För närvarande använder jag 1.6.2 och det verkar som att kommentarer bevaras som standard. Den enda kommentar-relaterade flaggan i kompilatorn är att ta bort kommentarer. Enligt dokumentationen:

--removeComments
Ta bort alla kommentarer utom copyright-huvudkommentarer som börjar med /!*

Relaterade artiklar