typescript - Hur man tar bort onödiga filer från ett npm frontend-paket i produktion


Jag har en frontend-webbapp skapad med Angular 2 och TypeScript, och jag kan bara inte hitta ett sätt att ordentligt organisera byggprocessen.

Säg att jag har denna struktur som jag tycker är rimlig:

/
 - dist/   <-- transpiled .js files
 - src/    <-- .ts files
 - assets/
 - bower_components/
 - node_modules/
 - package.json
 - index.html

Fråga 1

Självklart skulle jag vilja slippa ha src-mappen på produktionsservern. Men när borde jag ta bort den, om jag borde? Med ett npm-skript? Med en Grunt-uppgift? Med rm när jag skapar en Docker-bild?

Samma sak gäller för package.json och Gruntfile.js.

Fråga 2

Ett liknande problem kommer från node_modules-mappen: Jag använder Browserify för att bunta ihop de flesta av mitt apps beroenden till en enda fil, så till exempel blir Angular en del av dist/bundle.js.

Ska jag ta bort node_modules på produktionsservern, eftersom det inte är användbart längre? Hur?

Av någon anledning kan jag använda vissa moduler som inte kommer att inkluderas i den slutliga bundlen (t.ex. eftersom de refereras från <script>-taggar): hur vet jag vad jag ska ta bort och vad jag ska behålla?

Svar #1

Jag antar att din TS/JS är helt på klientsidan (i webbläsaren).

I så fall, om ditt projekt inte innehåller någon serverkod, har jag sett många projekt använda något som en www-mapp som representerar webbplatsens URL-schema före distribution. Allt utanför www är endast för utveckling (src, node_modules, etc.). Håller distributionen enkel :)