Skip to content

embarq/rently

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rently CircleCI

Development

  • Clone the repo
  • Install dependencies(npm recommended)
  • Download runtime config via npm run appconfig
  • Use one of the scripts from the list below

Scripts

Topic Script
General development serve
Development SSR build build:all:dev
Production SSR build build:all
Interact with SSR firebase serve
Download runtime config appconfig

SSR development notes

  • The SSR part was initially generated using Angular CLI as described in official docs
  • Since the project heavily depends on Firebase services(using AngularFire wrapper) we need to some fixes in regards building/packaging firebase sources:
    • [webpack.server.config.js] Point out modules resolution order in resolve.mainFields
    • [webpack.server.config.js] Modify externals - add /^firebase/ entry since Firebase has some troubles being bundled when in the Node environment
    • [webpack.server.config.js] Provide output.libraryTarget & output.library data because we want to run out SSR server in the Firebase function called ssr
    • Move firebase web config into functions remote config. You can download remote config using npm run appconfig
    • [src/app/core/core.module.ts] Replace generic AngularFireModule.initializeApp({ }) with manual initialization of FirebaseOptionsToken with value from environment
  • server.ts file generated by Angular CLI was enhanced with logging and some fixes:
    • Add important pollyfils for firebase running in node
    • Rewrite Express.Request.originalUrl from to absolute to relative path. Original url initially comes as https://{firebase-project-id}/{page-route}. We need to get rid of the first part for Angular Router to correctly resolve path within the frontend app navigation
    • Instead of listening the SSR server it needs to be exported for cloud function to actually run it

Development server

Run ng serve for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

Code scaffolding

Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.

Build

Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the --prod flag for a production build.

Running unit tests

Run ng test to execute the unit tests via Karma.

Running end-to-end tests

Run ng e2e to execute the end-to-end tests via Protractor.

Further help

To get more help on the Angular CLI use ng help or go check out the Angular CLI README.

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •