Getting Started
If your environment is already setup:
git clone https://rizing-devops@dev.azure.com/rizing-devops/rizing/_git/monorepo
cd monorepo
npm install
See Cloning a Repository docs for help on cloning a repository for the first time in ADO.
Run the application:
# To run just the frontend and backend app:
npm run start:omni
# To run just the docs:
npm run start:omni:docs
# To run the frontend, backend, and docs:
npm run start:omni:all
âšī¸ Overviewâ
The Rizing Geospatial products team uses a mono-repository style structure (aka monorepo). There are many reasons and specific advantages behind the choice to use this architecture (which can be read here). The monorepo is used to house all Geospatial products within Rizing. Additionally, this repository consists of hundreds of re-usable components and dozens of distributable packages that can be used by other developers at Rizing.
đŋ Environment Setupâ
Dependenciesâ
The following dependencies are necessary to be installed on your machine:
- Git
- NodeJS
- Visual Studio Code (not required, but recommended)
NodeJS (NVM) Setupâ
It's highly recommended to use Node Version Manager (nvm), rather than directly installing a version of NodeJS. This will allow you to effortlessly install and switch between NodeJS versions.
Download and install one of the following:
- NVM for Mac or Linux
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
- NVM for Windows
- Download and run latest installer
Install NodeJS >= 20.10.0
# Install NodeJS version
nvm install 20
# Set as active version
nvm use 20
Clone Repositoryâ
git clone https://rizing-devops@dev.azure.com/rizing-devops/rizing/_git/monorepo
Generate a Personal Access Token in Azure DevOps if necessary.
Open Codeâ
- Open the root folder in Visual Studio Code (or other IDE if preferred)
- When prompted from Visual Studio Code to install the recommended extensions, click "Yes"
- Install NodeJS packages (
npm install
)
Structureâ
The repository has the following structure:
đĻ monorepo # repo root
âŖ đ apps # contains all NodeJS apps
â âŖ đ app1
â âŖ đ app2
â â đ app3
âŖ đ docs # contains all application documentation (using Docusaurus)
â âŖ đ app1
â âŖ đ app2
â âŖ đ app3
â â đ dev-guide # developer guide docs
â đ libs # re-usable library code, broken down into packages (libs)
âŖ đ lib1
âŖ đ lib2
â đ storybook-host # storybook server that pulls all stories from all libs
đ Notesâ
Unit tests using the ArcGIS JS APIâ
When a library has unit tests that uses the ArcGIS JS API, it is necessary to adjust the library's Jest config to properly handle the dependency.
// Add any additional node module packages to the regex pattern.
"transformIgnorePatterns": [
"node_modules/(?!(@angular|@arcgis|@esri|@stencil/)"
],