Technology stack
The full steps for a complete build are as follows, each will be given in more detail:
- Step 1 [Required] Obtain the required software dependencies (node, npm, and angular CLI, as mentioned above)
- Step 2 [Optional] Clear any previous build files, locks, and local dependencies (this step is not typically necessary, but it ensures constency if there were previous local builds)
- Step 3 [Optional] Prepare dojo dependencies and place in zip file
lib/dojo-custom-jsdraw.zip
(this dojo build is already prepared by default so this step is optional) - Step 4 [Required] Prepare fundamental dependencies by doing
npm install
withpackage.dev.json
file. - Step 5 [Required] Prepare extended one-time build dependencies using specific build commands
- Step 6 [Required] Build, run or test the codebase as normal
If you are using a bash terminal, steps 2-5 can be accomplished by simply running:
bash build.sh
Make sure to have these installed in order to run the application:
- Node
- npm - usually included in the node installation
- Angular CLI - on any command line run
npm install -g @angular/cli@latest
- The angular cli "ng" executable will be located in this folder:
C:\Users\<USER>\AppData\Roaming\npm\
(Windows 7)~/.npm-global/bin/
(linux)- Note: For best results, this path should be added to your windows/bash path as the command will be used a lot.
- The angular CLI tool currently needs to have build-angular version <=0.803.25
- To force this installation after an audit fix run
npm i @angular-devkit/[email protected]
This step isn't always necessary, but can be useful when attempting to force a de novo build. The following files should be removed from the root directory:
package-lock.json
node_modules
This step isn't typically necessary. The purpose of this step is to prepare a slimmed down version of dojo for the jsdraw structure editor component, but the default build already has a form of this prepackaged. To perform a more custom dojo build, read the lib/README.md
file and follow its instructions.
You'll have to run the following commands the first time you work on the application to make sure a few libraries are built and ready to be used by the application:
bash:
npm install
- Go the the package.json file and look at the scripts property to see what availabe commands exist
- The commands to run during development begin with "start"
- Identify the environment you want to run, open your favorite command line tool and run the script starting with "npm run"
- So to run the public local environment, you would run
npm run start:gsrs:local
- After a few seconds of compiling the application, you're ready to view your application
- Open your browser and navigate to http://localhost:4200
You'll also need to to make adjustments to the API base urls and Gateway. See here details.
If you have a need for a different environment, you can create a new one based on the existing pattern.
GSRSFrontend uses node-sass, which has varying compatibilities based on the version of node.js being used. See https://www.npmjs.com/package/node-sass to check which version is compatable with your node version. The value of node-sass being used can be changed in the root 'package.json' file, where the default value is set as "node-sass": "4.13.1",
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 test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via Protractor.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI README.