JS_OF_OCAML(1)

NAME

js_of_ocaml - Js_of_ocaml compiler

SYNOPSIS

js_of_ocaml [COMMAND] …

DESCRIPTION

Js_of_ocaml is a compiler from OCaml bytecode to Javascript. It makes it possible to run pure OCaml programs in JavaScript environments like web browsers and Node.js.

OPTIONS (TOPLEVEL)

--export=VAL
    File containing the list of unit to export in a toplevel, with Dynlink or with --linkall. If absent, all units will be exported.

--nocmis, --no-cmis
    Do not include cmis when compiling toplevel.

--toplevel
    Compile a toplevel and embed necessary cmis (unless '--no-cmis' is provided). Exported compilation units can be configured with '--export'. Note you you'll also need to link against js_of_ocaml-toplevel.

OPTIONS (FILESYSTEM)

--extern-fs
    Configure pseudo-filesystem to allow registering files from outside. (default)

--file=FILE
    Register [FILE] to the pseudo filesystem.

-I DIR
    Add [DIR] to the list of include directories.

--no-extern-fs
    Configure pseudo-filesystem to NOT allow registering files from outside.

--ofs=FILE
    Output the filesystem to [FILE].

COMMANDS

build-fs [-I DIR] -o FILE [OPTION]… [FILES]…
    Js_of_ocaml pseudo filesystem utility

build-runtime [OPTION]… [JS_FILES]…
    Build standalone runtime. Used for separate compilation.

check-runtime [--target-env={isomorphic,browser,nodejs}] [OPTION]… [FILES]…
    Check runtime

compile [OPTION]… [JS_FILES]… PROGRAM
    Js_of_ocaml compiler

link [OPTION]… [JS_FILES]…
    Js_of_ocaml linker

print-standard-runtime [OPTION]…
    Print standard runtime to stdout

ARGUMENTS

JS_FILES
    Link JavaScript files [JS_FILES]. One can refer to path relative to Findlib packages with the syntax '+pkg_name/file.js'

PROGRAM (required)
    Compile the bytecode program [PROGRAM]. Use '-' to read from the standard input instead.

OPTIONS

--custom-header=VAL
    Provide a custom header for the generated JavaScript file, useful for making the script an executable file with #!/usr/bin/env node

--debug=SECTION
    enable debug [SECTION].

--debuginfo, --debug-info
    Output debug information.

--disable=OPT
    Disable optimization [OPT].

--dynlink
    Enable dynlink of bytecode files. Use this if you want to be able to use the Dynlink module. Note that you'll also need to link with 'js_of_ocaml-compiler.dynlink'.

--enable=OPT
    Enable optimization [OPT].

--include-runtime
    Include (partial) runtime when compiling cmo and cma files to JavaScript.

--keep-unit-names
    Keep unit name

--linkall
    Link all primitives and compilation units. Exported compilation units can be configured with '--export'.

--no-sourcemap, --no-source-map
    Don't generate source map. All other source map related flags will be ignored.

--noinline, --no-inline
    Disable inlining.

--noruntime, --no-runtime
    Do not include the standard runtime.

-o FILE
    Set output file name to [FILE].

--opt=NUM
    Set optimization profile : [NUM].

--pretty
    Pretty print the output.

-q, --quiet
    suppress non-error messages.

--set=PARAM=VALUE
    Set compiler options.

--setenv=PARAM=VALUE
    Set environment variable statically.

--source-map-inline
    Inline sourcemap in the generated JavaScript.

--source-map-no-source
    Do not inline sources in source map.

--source-map-root=VAL
    root dir for source map.

--sourcemap, --source-map
    Generate source map.

--target-env={isomorphic,browser,nodejs} (absent=isomorphic)
    Runtime compile target.

--Werror
    turn all warnings into errors.

--wrap-with-fun=VALUE (absent=<Immediately Invoked Function Expression>)
    Wrap the generated JavaScript code inside a function that needs to be applied with the global object.

COMMON OPTIONS

--help[=FMT] (default=auto)
    Show this help in format FMT. The value FMT must be one of auto, pager, groff or plain. With auto, the format is pager or plain whenever the TERM env var is dumb or undefined.

--version
    Show version information.

EXIT STATUS

js_of_ocaml exits with:

0   on success.

123 on indiscriminate errors reported on standard error.

124 on command line parsing errors.

125 on unexpected internal errors (bugs).

BUGS

Bugs are tracked on github at https://github.com/ocsigen/js_of_ocaml/issues.

SEE ALSO

ocaml(1)

AUTHORS

Jerome Vouillon, Hugo Heuzard.

LICENSE

Copyright (C) 2010-2020.

js_of_ocaml is free software, you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, with linking exception; either version 2.1 of the License, or (at your option) any later version.