The stack run command¶
stack run [-- ARGUMENT(S) (e.g. stack run -- file.txt)]
[--[no-]ghc-package-path] [--[no-]stack-exe]
[--package PACKAGE] [--rts-options RTSFLAG] [--cwd DIR]
stack run builds a project executable and runs it. If the command has a first
argument and it is recognised as the name of an executable component of a
project package then that is built. Otherwise, the project's first executable is
built. If the project has no executables Stack reports no executables found as
an error.
Note
To identify a project's first executable, and search for the name of an executable component, Stack lists the executable components, in order, for each package, listed in order. For example:
packageA:a-exe < packageA:b-exe < packageB:a-exe < packageB:b-exe
Everything after -- on the command line is interpreted as a command line
argument to be passed to what is run, other than a first argument recognised as
the name of an executable component of a project package.
By default:
-
the
GHC_PACKAGE_PATHenvironment variable is set for the subprocess. Pass the--no-ghc-package-pathflag to not set the variable; and -
the
STACK_EXEenvironment variable is set with the path to Stack. Pass the--no-stack-exeflag to not set the variable.
The --cwd option can be used to set the working directory before the
executable is run.
The --package option (which can be specified multiple times) can be used to
add a package name to build targets.
The --rts-options option (which can be specified multiple times) can be used
to pass a list of GHC's
runtime system (RTS) options
to the executable when it is run. (The +RTS and -RTS must not be included.)