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_PATH
environment variable is set for the subprocess. Pass the--no-ghc-package-path
flag to not set the variable; and -
the
STACK_EXE
environment variable is set with the path to Stack. Pass the--no-stack-exe
flag 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.)