-
Notifications
You must be signed in to change notification settings - Fork 1
Deploy Angular App
Topics Covered:
Firebase
GitHub
-
Run
ng build --prod
and this builds the entire Angular application for production, optimizes everything and gives you an output which you can deploy onto a static server.- It compiles your TypeScript code to JavaScript, it also compiles all your templates to JavaScript instructions so that in the end, only JavaScript code is generated that runs in the browser and contains all the logic for updating the DOM in the way you defined it in your multiple components and all the logic you added in your application.
- Now after running
ng build --prod
, you getdist
folder and in there, you have a folder of your project name and in that project name folder.
-
You need the Firebase CLI for that which simply is a tool you have to install to automatically deploy your Firebase application. For that, you need to install the Firebase CLI first, for which you need NodeJS and NPM and then run this command
npm install -g firebase-tools
-
So with that all run, you next have to run
firebase login
, to log into your Firebase account. -
Next step then is to run
firebase init
to connect this project here with one of your Firebase projects and for that, you now should be in your Angular project folder, socd
into it.- Firebase init now asks you what you want to use,
- which Firebase feature you want to use: hosting, so tick hosting here by hitting space next to it and then hit enter
- choose a project to which you want to connect: simply choose the project you created e.g.
angular-basics
- what your public directory is: that's in a
dist/<project-name>
folder e.g.dist/angular-basics
- whether you want to configure this as a single page app: y, to ensure that all requests that you sent to that back-end are always redirected to
index.html
, you need to have a server configured such that it always serves theindex.html
, no matter which URL you entered into the browser and the reason for that is that by default, the server always handles an incoming request first and if it's a URL that's unknown to the server, you would normally get an error. Of course we have the Angular router handling our different routes but that, always keep in mind, runs on the client, so in the browser and that only gets a chance to run if the server serves your app. So any requests have to reach the server first, there they are all redirected toindex.html
, which in the end is our starting point for the single page application and since any request, no matter which URL you entered reaches that page, that HTML page, now the Angular app can take over for any incoming request with any URL on your server and can then use the Angular router to load the correct content in your Angular app, that's why this redirection is important - the existing HTML file should not be overwritten: NO
- Firebase init now asks you what you want to use,
-
Run
firebase deploy
and this will now deploy the content of this folder onto Firebase.
URL: https://angular-practice-166c4.firebaseapp.com/
Reference
-
ng build --prod --base-href https://USERNAME.github.io/REPOSITORY_NAME/ --output-path docs
-
git add docs/*
-
git commit -m "some_message"
-
git push
-
Login to GitHub > Repository > Settings > Publish GitHub Pages > branch: master branch/docs folder
-
Install Git pages package:
npm i angular-cli-ghpages --save-dev
-
npx ngh --dir=dist/[PROJECT-NAME]
Note When deploying for first time, follow all steps and then on later deployments follow step 1 - 4 only.
URL: https://aakash14goplani.github.io/AngularPractice/
Reference
Method 2
ng add angular-cli-ghpages
ng deploy --base-href=https://aakash14goplani.github.io/angular-isite/
- In case of errors, run
ngh --no-silent
. - Also your username and email of Git should be configured