You will need node setup, preferably something fresh. At least one of us uses nvm
to manage node, for Angular you'll need a version higher than 10.9.0
It's important to note, as part of understanding this project, how and why it was intially setup.
- Technology choices
- Angular 8 - Really low start up cost to learn and to implement
- Angular CLI - Command Line tool for super easy creation of Angular components
- Typescript - Easy language for most of our developers to jump on
- NPM - package manager that is supported by Nexus Repository
- You can use Yarn if you'd like
- SASS - currently one of the best CSS precompilers
- Angular Material 6 - Easy setup of a simple UI look and feel
- We followed the Quick start guide from Angular
-
NPM
- install npm from https://nodejs.org/en/
- install the latest angular cli with
npm install -g @angular/cli@latest
- install all other dependencies with
npm install
from project root
-
Yarn
- install yarn
- install angular cli with
yarn global add @angular/cli@latest
- install all other dependencies with
yarn
from project root
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.
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
.
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.
Currently not running, help us out and get them running!
Currently not running, help us out and get them running!
To get more help on the Angular CLI use ng help
or go check out the Angular CLI README.
We currently follow the Angular.io style guide.
- Preferences > Editor > Code Style > TypeScript > Spaces > Within : Enable "ES6 import/export" braces
Using this externally, you'll need to wire up to http://search.maven.org/solrsearch/select
similar to how we do in Production. You can see these settings in environment.prod.ts
.
You'll likely need to use a plugin to modify CORS headers as this will produce a cross domain request, there are quite a few plugins out there. For Chrome you can use this one.
Alternatively, you can use a reverse proxy server like cors-anywhere to add CORS header to your respose. This would be slow but remove any client side plugin dependency. You can refer following sample config environment.prod.ts
.
Looking to contribute to our code but need some help? There's a few ways to get information: