How do you deploy Angular apps once they reach the production phase?
All the guides I've seen so far (even on angular.io) are counting on a lite-server for serving and browserSync to reflect changes - but when you finish with development, how can you publish the app?
Do I import all the compiled
.js files on the
index.html page or do I minify them using gulp? Will they work? Do I need SystemJS at all in the production version?
This question is related to
You are actually here touching two questions in one.
The first one is How to host your application?.
And as @toskv mentioned its really too broad question to be answered and depends on numerous different things.
The second one is How do you prepare the deployment version of the application?.
You have several options here:
Deploy using special bundling tools, like
They come with all the possibilities that are lacking in #1.
You can pack all your app code into just a couple of js/css/... files that you reference in your HTML.
systemjs builder even allows you to get rid of the need to include
systemjs as part of your deployment package.
You can use
ng deploy as of Angular 8 to deploy your app from your CLI.
ng deploy will need to be used in conjunction with your platform of choice (such as
@angular/fire). You can check the official docs to see what works best for you here
Yes you will most likely need to deploy
systemjs and bunch of other external libraries as part of your package. And yes you will be able to bundle them into just couple of js files you reference from your HTML page.
You do not have to reference all your compiled js files from the page though -
systemjs as a module loader will take care of that.
I know it sounds muddy - to help get you started with the #2 here are two really good sample applications:
SystemJS builder: angular2 seed
WebPack: angular2 webpack starter