diff --git a/mock-api/README.md b/mock-api/README.md index be13e7afd..ba8dfbd10 100644 --- a/mock-api/README.md +++ b/mock-api/README.md @@ -2,4 +2,4 @@ When developing and testing the web interface, it's handy not to bother with re-flashing an ESP32 each time. The idea is to mimic the ESP using a mock/stub server that responds to the REST (HTTP POST & GET) and WebSocket calls. -To set it up it do run `yarn install` in the `mock-api` folder, then from the `interface` folder run `yarn run standalone`. This will start the mock API server on port 3080 using data from `mock-api/server.js` and the web server runs on port 3000. +To use first make sure you have nodejs installed (>v18) then install yarn (`npm install -g yarn`). Now type `yarn` from this `mock-api` folder. To run EMS-ESP's WebUI navigate up to the `interface` folder and type `yarn run standalone`. This will start the mock API server on port 3080 using static dummy data from `mock-api/server.js` and also the web server which is at . diff --git a/scripts/build_interface.py b/scripts/build_interface.py index ff1d2ec8e..6fd6e215b 100644 --- a/scripts/build_interface.py +++ b/scripts/build_interface.py @@ -3,11 +3,12 @@ from shutil import copytree, rmtree, copyfileobj import os import gzip -# brotli has better compression than gzip but requires https so leaving here for future +# brotli has better compression than gzip but requires https so leaving here for future # import brotli Import("env") + def gzipFile(file): with open(file, 'rb') as f_in: with gzip.open(file + '.gz', 'wb') as f_out: @@ -20,27 +21,29 @@ def gzipFile(file): # f_out.write(brotli.compress(f_in.read(), quality=11)) # os.remove(file) + def flagExists(flag): buildFlags = env.ParseFlags(env["BUILD_FLAGS"]) for define in buildFlags.get("CPPDEFINES"): if (define == flag or (isinstance(define, list) and define[0] == flag)): return True + def buildWeb(): os.chdir("interface") print("Building web interface...") try: - env.Execute("yarn install") + env.Execute("yarn") env.Execute("yarn run typesafe-i18n --no-watch") with open("./src/i18n/i18n-util.ts") as r: text = r.read().replace("Locales = 'pl'", "Locales = 'en'") with open("./src/i18n/i18n-util.ts", "w") as w: w.write(text) env.Execute("yarn run build") - + buildPath = Path("build") wwwPath = Path("../data/www") - + if wwwPath.exists() and wwwPath.is_dir(): rmtree(wwwPath) @@ -53,7 +56,8 @@ def buildWeb(): finally: os.chdir("..") + if (len(BUILD_TARGETS) == 0 or "upload" in BUILD_TARGETS): buildWeb() else: - print("Skipping build web interface for target(s): " + ", ".join(BUILD_TARGETS)) \ No newline at end of file + print("Skipping build web interface for target(s): " + ", ".join(BUILD_TARGETS))