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?
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 webpack
or systemjs
builder.
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