The stack init
command¶
stack init
initialises Stack's default project-level YAML configuration file
(stack.yaml
) for an existing project, based on the Cabal file or
package.yaml
file for each of its packages.
By default:
-
Stack searches for Cabal and
package.yaml
files in the current directory. Specify one or more directories as arguments to cause Stack to search them; -
Stack also searches for Cabal and
package.yaml
files in subdirectories. Pass the flag--ignore-subdirs
to ignore subdirectories; -
Stack will not overwrite an existing
stack.yaml
file. Pass the flag--force
to allow overwriting; and -
Stack will not initialise if there are conflicting or incompatable user packages. Pass the flag
--omit-packages
to cause Stack to ignore such matters while initialising.
If a snapshot is specified at the command line, stack init
will try to use it.
For further information, see the documentation for the
--snapshot
and
--resolver
options.
Otherwise, stack init
will try to use the following Stackage snapshots in
order of preference, using the first that is compatable: the most recent LTS
Haskell, the most recent Stackage Nightly, and other LTS Haskell (most recent
first).