diff --git a/frontend/README_DEV.md b/frontend/README_DEV.md index 48a76a1b5e..9d0c978f85 100644 --- a/frontend/README_DEV.md +++ b/frontend/README_DEV.md @@ -28,20 +28,23 @@ docker compose up db windmill_server windmill_worker - Install llvm **On OSX:** + ```bash brew install llvm caddy gsed - + # make LLVM tools available on PATH echo 'export PATH="/opt/homebrew/opt/llvm/bin:$PATH"' >> ~/.zshrc - + # now, restart your shell. You should now have the `lld` binary on your PATH. ``` + - To test that you have Rust and Cargo installed run `cargo --version` - In your terminal, go to the backend directory and run `cargo build` - Run `cargo run` **Known issue on M1 Mac while running `cargo build`** + - You may encounter `linking with cc failed` build time error. - To solve this run: ```bash @@ -49,7 +52,6 @@ docker compose up db windmill_server windmill_worker source ~/.zshrc ``` - **Do a Frontend Build** In order to run the backend, you need to have a frontend build inside `frontend/build/`. @@ -64,17 +66,22 @@ So, in the frontend folder, run: # prerequisite for build npm run generate-backend-client +## on mac use +npm run generate-backend-client-mac npm run build # now, you'll have a `frontend/build` folder. ``` **Known issue while running `npm run build`** + - You may encounter `FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory` error. - To solve this run: + ```bash export NODE_OPTIONS=--max_old_space_size=8096 ``` + - run `npm run build` again In the root folder: @@ -146,13 +153,13 @@ Recommended config for VS Code: - turn _format on save_ on - ## Building The project is built with [SvelteKit](https://kit.svelte.dev/) and uses as output static files. There are others adapters for sveltekit, but we use the static adapter. To build the frontend as static assets, use: + ``` npm run build ``` @@ -160,10 +167,11 @@ npm run build The output is in the `build` folder. The default build assume you serve every non static files as the 200.html file which is catchall. If you prefer a normal layout, you can use: + ``` NOTCATCHALL=true npm run build ``` + which will generate an index.html and allow you to serve the frontend with any static server. Env variables used for build are set in .env file. See [https://vitejs.dev/guide/env-and-mode.html#env-files](https://vitejs.dev/guide/env-and-mode.html#env-files) for more details. - diff --git a/frontend/package.json b/frontend/package.json index e599be71ec..3376840ffb 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -11,6 +11,7 @@ "format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. .", "package": "svelte-package -o package", "generate-backend-client": "openapi --input ../backend/windmill-api/openapi.yaml --output ./src/lib/gen --useOptions && sed -i '213 i \\ request.referrerPolicy = \"no-referrer\"\n' src/lib/gen/core/request.ts", + "generate-backend-client-mac": "openapi --input ../backend/windmill-api/openapi.yaml --output ./src/lib/gen --useOptions", "pretest": "tsc --incremental -p tests/tsconfig.json", "test": "playwright test --config=tests-out/playwright.config.js" },