diff --git a/Dockerfile.emscripten b/Dockerfile.emscripten
index 2f9aa55cbd26f3ad644f59cef350ed5bfc2463bd..8c099aab5f03e0393194cf1bb178886594a7a264 100644
--- a/Dockerfile.emscripten
+++ b/Dockerfile.emscripten
@@ -16,6 +16,33 @@ RUN apt-get update && \
     protobuf-compiler && \
     npm install -g pnpm
 
+USER emscripten
+WORKDIR /home/emscripten
+
+ENV LANG=en_US.UTF-8
+SHELL ["/bin/bash", "-c"]
+ENV SHELL=/bin/bash
+ENV HOME=/home/emscripten
+
+# Preinstall large deps (rare changed) to eliminate pulling them from web each time
+ENV PNPM_HOME="/home/emscripten/.local/share/pnpm"
+ENV PATH="${PNPM_HOME}:${PATH}"
+
+RUN source "${EMSDK}/emsdk_env.sh" && \
+    pnpm add -g \
+      playwright@~1.38.1 \
+      ts-proto@~1.156.7 \
+      typescript@~4.4.4 \
+      protobufjs@~7.2.5 && \
+    pnpm dlx playwright install
+
+USER root
+WORKDIR /home/emscripten 
+ENV PNPM_HOME="/home/emscripten/.local/share/pnpm"
+ENV PATH="${PNPM_HOME}:${PATH}"
+
+RUN pnpm dlx playwright install-deps
+
 FROM supplemented_tools_sdk AS lib_source
 
 ARG BOOST_VERSION_TAG=boost-1.82.0