# Taobin Recipe Manager (Electron) ## Development ### Install dependencies ``` npm install ``` ### Run develop ``` npm run dev ``` ### Build Before build, you have to change version in `package.json` to the new version. ``` npm run build ``` > note: this will build executable and installer for your current platform ## Environment Variables We have some environment variables to control app behavior. The environment variables in this project have a prefix `TAOBIN_RECIPE_MANAGER_`. If you want to set environment variables, you have to add this prefix. > note: All the environment variables can access through `import.meta.env.{VARIABLE_NAME}`. > note: In development, you can create a `.env.local` file in the root directory of the project to set environment variables. ## Environment Mode In this Client project, we have two environment modes: `electron` and `web`. Business logic will be different in these two modes. you wrap the code in `if (window.electronRuntime)` to run the code in electron mode. You can also use `if (!window.electronRuntime)` to run the code in web mode. The reason why we have two environment modes is that in electron we have to use native modules for example `deeplink` to handle login callback. But in web, we have to use `window.location.href` to handle login callback. > In Development, the default if to run cmd `npm run dev` is will run in both electron and web mode. If you want to run in electron or web mode, you can run `npm run dev:electron` or `npm run dev:web`. ## Environment Variables List In this section, we will list all the environment variables. That app will use in both environment mode the default value if you don't set the environment variables. > dev: if you add new environment variables, please add it to this section. ### TAOBIN_RECIPE_MANAGER_SERVER_URL - The url of the server. Default: `http://localhost:8080` ### TAOBIN_RECIPE_MANAGER_TUS_SERVER_URL - The url of the tus server for upload/download files. Default: `http://localhost:8090/files`