diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..784e14f --- /dev/null +++ b/Makefile @@ -0,0 +1,46 @@ +# Copyright DB InfraGO AG and contributors +# SPDX-License-Identifier: Apache-2.0 + +CAPELLA_MODEL_EXPLORER_HOST_IP ?= 127.0.0.1 +CAPELLA_MODEL_EXPLORER_PORT ?= 8000 +MODEL ?= coffee-machine + +.PHONY: help +help: + @echo 'Available make targets:' + @echo '' + @echo ' run MODEL=/some/model.aird' + @echo ' -- Run the backend with a model' + @echo ' build-frontend -- Build the prod frontend files' + @echo ' dev-frontend -- Run the frontend in dev mode' + @echo ' storybook -- Run storybook for frontend development' + @echo ' clean-frontend -- Clean out all built/installed frontend files' + +.PHONY: run +run: frontend/dist/static/env.js + sed -i "s|__ROUTE_PREFIX__||g" frontend/dist/static/env.js + MODE=production python frontend/fetch-version.py + python -c "from capellambse_context_diagrams import install_elk; install_elk()" + MODE=production python -m capella_model_explorer.backend "$$MODEL" ./templates + +.PHONY: build-frontend +build-frontend: frontend/node_modules + cd frontend && npm run build + +.PHONY: dev-frontend +dev-frontend: frontend/node_modules + cd frontend && npm run dev + +.PHONY: storybook +storybook: frontend/node_modules + cd frontend && npm run storybook + +.PHONY: clean-frontend +clean-frontend: + cd frontend && rm -rf dist node_modules + +frontend/dist/static/env.js: frontend/node_modules + cd frontend && npm run build + +frontend/node_modules: frontend/package.json frontend/package-lock.json + cd frontend && npm install diff --git a/README.md b/README.md index 0900f9d..a1f08fa 100644 --- a/README.md +++ b/README.md @@ -81,17 +81,39 @@ pip install -e '.[docs,test]' pre-commit install ``` -# Front-end development +# Development -To develop the frontend: +This repo contains a Makefile with recipes for a few commonly needed tasks +during development. Run `make help` for more details. + +## Developing the frontend + +To develop frontend components, run: + +```bash +make storybook +``` + +To develop the app as a whole, run: + +```bash +make dev-frontend +``` + +Note that this requires a running backend server, see the next section. + +## Backend development + +To run the backend, use the following command: ```bash -cd frontend -npm install +make run MODEL=../path/to/model.aird ``` -then, to develop components `npm run storybook` and to develop the whole app -`npm run dev` +This will start the API server on , where it will serve +the frontend in production mode. These static files can be rebuilt with `make +build-frontend`, although it is usually more convenient to run the frontend in +development mode with `make dev-frontend` (see above). # Integration in the Capella Collaboration Manager