Compiling for the Web

See also Exporting for the Web.

Requirements

To compile export templates for the Web, the following is required:

  • Emscripten 1.39.9+.
  • Python 3.5+.
  • SCons 3.0+ build system. See also Getting the source. Introduction to the buildsystem.

    Building export templates

    emcc is available in your PATH. This is usually configured by the Emscripten SDK, e.g. when invoking emsdk activate and source ./emsdk_env.sh/emsdk_env.bat. target as either release for a release build or release_debug for a debug build:
    1. scons platform=javascript tools=no target=releasescons platform=javascript tools=no target=release_debug
    JavaScript singleton will be built into the engine. Official export templates also have the JavaScript singleton enabled. Since eval() calls can be a security concern, the javascript_eval option can be used to build without the singleton:
    1. scons platform=javascript tools=no target=release javascript_eval=noscons platform=javascript tools=no target=release_debug javascript_eval=no
    bin subdirectory. Its name is godot.javascript.opt.zip for release or godot.javascript.opt.debug.zip for debug. webassembly_release.zip for the release template:
    1. mv bin/godot.javascript.opt.zip bin/webassembly_release.zip
    webassembly_debug.zip for the debug template:
    1. mv bin/godot.javascript.opt.debug.zip bin/webassembly_debug.zip

    Threads and GDNative

    export page for more info. threads_enabled=yes or gdnative_enabled=yes to enable threads or GDNative support:
    1. scons platform=javascript tools=no threads_enabled=yes target=releasescons platform=javascript tools=no threads_enabled=yes target=release_debugscons platform=javascript tools=no gdnative_enabled=yes target=releasescons platform=javascript tools=no gdnative_enabled=yes target=release_debug
    bin subdirectory. Its name will have either the .threads or .gdnative suffix. webassembly_release_threads.zip and webassembly_release_gdnative.zip for the release template:
    1. mv bin/godot.javascript.opt.threads.zip bin/webassembly_threads_release.zipmv bin/godot.javascript.opt.gdnative.zip bin/webassembly_gdnative_release.zip
    webassembly_debug_threads.zip and webassembly_debug_gdnative.zip for the debug template:
    1. mv bin/godot.javascript.opt.debug.threads.zip bin/webassembly_threads_debug.zipmv bin/godot.javascript.opt.debug.gdnative.zip bin/webassembly_gdnative_debug.zip

    Building the Editor

    It is also possible to build a version of the Godot editor that can run in the browser. The editor version requires threads support and is not recommended over the native build. You can build the editor with:
    1. scons platform=javascript tools=yes threads_enabled=yes target=release_debug
    bin subdirectory. Its name will be godot.javascript.opt.tools.threads.zip. You can upload the zip content to your web server and visit it with your browser to use the editor. export page for the web server requirements.