#Financial calculator
This is reactjs application recalculates financing options using financial api.
Library uses react, typescript, css written in SASS preprocessor.
Developing bundler is webpack.
Build production build made as simple tsc compilation with asset files copies provided
##Requirements - nodejs v10 + - npm v6.9.0 +
##Installation: Installing dependencies
For properly installing depedencies you need to prepare whole repository from its ROOT directory, calling lerna commands
For preparing needed devDepedencies on top level
npm install
Installing dependencies in each package
lerna bootstrap
###Build process
Build task builds two types of library entrypoints :
-
"web" - destined to web include (for example by script tag) with all depedencies built in (like react and other third party libraries)
-
"ecma script module" - destined for further bundler processing, it is resolved through simply typescript compiling in package.json statement
tsc && copyfiles "./lib/**/*.!(tsx|ts|d.ts|html)" "dist/esm" -u 1
##Development
Be sure, that all "file" linked depedencies, has their dist directories, if not -
call commands from repository ROOT directory
lerna bootstrap
lerna run build
Running dev server in standalone mode for current library
lerna run start --stream --scope @dac-software/financial-calculator
Running dev mode through bundler in other project. Project should be linked by npm.
lerna run build:dev --scope @dac-software/financial-calculator
build dev emmits files into dist/esm/offer-financial-calculator without CSS / files extraction, it is determined by webpack condition on compilation mode
##Running tests
Allowed only from root directory
npm run test
####Codestyle
We are in consonance with standardjs.
Call commands from repository ROOT directory
Validation codestyle:
lerna run codestyle-check-typescript
Automatic fix:
lerna exec npm run codestyle-typescript-fix
##Compilation summary
| lerna run start - (standalone dev) | lerna run build:dev (imported as esm in higher bundler) | lerna run build (production build) |
---|
key dist files | none | dist/esm/offer-financial-calculator.js | dist/esm/offer-financial-calculator.js, dist/offer-financial-calculator.js, dist/offer-financial-calculator.css |
css extraction | no | css in js | esm: css in js, web: extracted |
files extraction | no | yes | no (copied) |