Qarson BASE UI
Main purpose of this library is to aggregate main UI parts of qarson multipage system. Library contains css styles written in SASS preprocessor and few smaller javascript functions of user interface basing on simple selecting DOM element mostly with jquery and manipulate DOM tree.
Requirements
- nodejs with npm v8 +
Installation:
Installing depedencies
npm install
Build production library files
npm run build
Development:
Library is third party lib for main project.
To work with code in configured development process you need to do few steps:
-
Link current library (be aware of used the same node version in all)
npm link
-
Run build process in development mode with watching changes
npm run build:dev
-
Move to "including" lib directory and link local resources
npm link @dac-software/base-ui
Then, run webpack-dev-server instance in order to instructions in "including" project.
* Build task build two types of library entrypoints:
- "web" - destined to web include, currently not useful - but left to keep publishing consistency
- "ecma script module" - destined for further bundler processing, it is resolved through simply copyfiles statement
copyfiles "./lib/**/*.!(tsx|ts|d.ts|html)" "dist/esm" -u 1
####Codestyle
We are in consonance with standardjs.
Validation codestyle:
npm run codestyle-check
Automatic fix:
npm run codestyle-fix
Development test deploy
For manual tests purposes library should be published on npm with dev tag with task/story identifier
NPM publising manually:
- Increase version in package.json
- Npm login with proper username and password
npm login
- Npm publish (command will trigger prepare npm method which should build files to dist directory)
npm publish --access=public
NPM publishing through bitbucket pipelines:
-
dev tag publish using pipeline named:
custom: dev-npm-publish
This pipeline automatically defines branch related tag name, for example :
1.0.0-some-branch-name.0
-
production tag publish using pipeline named:
custom: prod-npm-publish
This pipeline requires what kind of semver tag should be defined for publish. You need to fill additional field in pipeline form and type one of version type : - patch - minor - major