webpack - Markera en metod eller en funktion som endast för utveckling i TypeScript?


Finns det ett färdigt sätt att markera någon metod eller funktion i min TypeScript-kod som endast för utveckling/felsökning, så att den inte går in i produktionskoden när den kompileras med Webpack?

Något liknande som kommentarer tas bort från koden.

Jag har några funktioner som jag ibland använder för att felsöka appen, men som inte används i produktion. Jag skulle vilja slippa kommentera bort dem i produktion eftersom någon annan i teamet kan besluta att ta bort den här koden som föråldrad när de ser den kommenterad.

Svar #1

TypeScript har inget sätt att göra detta direkt, men du kan uppnå det genom att använda en uppgiftskörare, såsom gulp, och använda ett plugin som detta.

Jag har egentligen inte använt Webpack tidigare, men jag hittade ett plugin som låter dig ta bort funktioner från koden här.

Svar #2

För metoder låter det knepigt. För funktioner är det ganska enkelt med Define-pluginet som följer med Webpack.

1) Omslut koden du vill tas bort i produktion med

if (ENV_MODE === 'dev') {
   ...
}

2) I din konfigurationsfil, använd detta inuti plugins-arrayen:

new webpack.DefinePlugin({
   'ENV_MODE': "'prod'" // or "'dev'"
})

3) Sedan led utdata till uglify med hjälp av

new webpack.optimize.UglifyJsPlugin

det kommer att ta bort död kod som if-satserna som nu ser ut som if ('prod' === 'dev')