The steps below will walk you through setting up your own instance of the project.
To set up the development environment for this website, you'll need to install the following on your system:
If you use nvm
, activate the desired Node version:
nvm install
Install Node modules:
yarn install
This command will install all the dependencies and devtools needed for local development.
Configuration is done using dot.env files.
These files are used to simplify the configuration of the app and should not contain sensitive information.
Copy the .env.local-sample
to .env.local
to add your configuration variables.
cp .env.local-sample .env.local
Get your Mapbox access token from Mapbox Dashboard. Put the key in .env.local
file.
yarn serve
Compiles the sass files, javascript, and launches the server making the site available at http://localhost:9000/
The system will watch files and execute tasks whenever one of them changes.
The site will automatically refresh since it is bundled with livereload.
- Refer to ARCHITECTURE docs to read about architecture.
- Refer to PAGE_OVERRIDES for information about the component/content overriding feature.
VEDA-UI includes a GitHub action for checking TypeScript and lint errors. If your changes trigger any of these errors, your pull request (PR) will be marked as 'Some checks were not successful.'
Additionally, there's a pre-commit hook that performs the same error checks. This helps developers identify and address issues at an earlier stage. If you need to bypass the check (to make a local temporary commit etc.), include the `--no-verify`` flag in your commit command.
While the existing checks ensure that no linting errors are introduced into the main branch, enabling "Format on Save" in your code editor provides an additional layer of convenience. It helps catch formatting issues early in the development process, minimizing the risk of committing errors and ensuring consistent code style across the team.
Install Required Extensions:
-
Install the ESLint extension ("dbaeumer.vscode-eslint").
-
Enable Format on Save in the settings (⌘ Command + , on macOS)
-
Configure Formatter Settings: Ensure ESLint is set as the default formatter:
Using Settings UI: Open the Command Palette (⌘ Command+Shift+P on macOS), select Preferences: Open Settings (UI), search "default formatter," and select ESLint dbaeumer.vscode-eslint.
Using JSON: Open Preferences: Open User Settings (JSON) and add:
"editor.defaultFormatter": "dbaeumer.vscode-eslint"
-
Test the Configuration: Make a change to any file in your project, save it, and verify that it is automatically formatted.
Note: The project contains a file .vscode/settings.json.sample
with our recommended vscode settings.
To apply these settings to your workspace in VS Code, rename the file to .vscode/settings.json
by removing the .sample
extension.
The title of any PR to main
should follow Conventional Commit. This is to make sure the automatic versioning and release works seamlessly. Please give it a read to its summary before making a PR.
An example PR title could look like this:
feat: Implement new component
: This commit will bump the minor version.fix: typo in description
: This commit will bump the patch version.feat!: New component that is not compatible
:!
is a shortcut forBREAKING CHANGE
. This commit will bump the major version.
We currently support the following task types. Any type other than feat
will be treated as a patch version change (unless it is a breaking change):
["feat","fix", "docs", "test", "ci", "refactor", "chore", "revert"]'
yarn test
Make sure the development server is running (yarn serve
)
yarn test:e2e --ui
Alternatively, you can install the playwright extension for vs code (ms-playwright.playwright) and run the tests directly from there. It allows to run the tests in watch mode, open the browser or trace viewer, set breakpoints,...
Again, make sure that the development server is running (yarn serve
).
To prepare the app for deployment run:
yarn build
or
yarn stage
This will package the app and place all the contents in the dist
directory.
The app can then be run by any web server.
When building the site for deployment provide the base url trough the PUBLIC_URL
environment variable. Omit the trailing slash. (E.g. https://example.com)
If you want to use any other parcel feature it is also possible. Example:
PARCEL_BUNDLE_ANALYZER=true yarn parcel build app/index.html