Run Fable in release mode, RELEASE compiler directive will be set.

fable watch

Run Fable in watch mode, DEBUG compiler directive will be set.

let host =
    #if DEBUG

fable clean

Remove fable_modules folders and files with specified extensions (default .fs.js).




Working directory


Redirect compilation output to a directory


Extension for generated JS files (default .fs.js)


Enable source maps


Set the value of the sourceRoot property in generated source maps


Defines a symbol for use in conditional compilation


The configuration to use when parsing .fsproj with MSBuild, default is 'Debug' in watch mode, or 'Release' otherwise


Print more info during compilation


Don't print any log during compilation


Compile numeric arrays as JS typed arrays (default is true for JS, false for TS)


Alias of watch command


Delay in ms before recompiling after a file changes (default 200)


The command after the argument will be executed after compilation


The command after the argument will be executed BEFORE compilation


Like run, but will execute after each watch compilation


Runs the generated script for last file with node

(Requires "type": "module" in package.json and at minimum Node.js 12.20, 14.14, or 16.0.0)


Automatically reply 'yes' (e.g. with clean command)


Skip dotnet restore


Recompile all files, including sources from packages


Don't merge sources of referenced projects with specified pattern (Intended for plugin development)


Compile with optimized F# AST (experimental)


Choose wich languages to compile to

Available options:

  • javascript (alias js) - stable
  • typescript (alias ts) - stable
  • python (alias py) - beta
  • rust (alias rs) - beta
  • dart - beta
  • php - experimental

Default is javascript

Environment variables


When set to '1' or 'true', Fable watch will poll the file system for changes. This is required for some file systems, such as network shares, Docker mounted volumes, and other virtual file systems.