elm-review from Node.js.
# Save it to your package.json, if you use npm in your project.# This is the recommended way.npm install elm-review --save-dev# Install globally. This is not recommended.npm install -g elm-review
elm-review --help # Print the helpelm-review init # Creates an empty review configurationelm-review # Review your project
elm-review for the first time, you need to run
elm-review initelm-review init --help # for more information and the available flags
This will create a
review/ directory containing an
elm.json and a
ReviewConfig.elm file, which you should commit into your project. Here is what it may look like:
module ReviewConfig exposing (config)import Lint.Rule exposing Ruleimport NoDebugimport NoUnused.Variablesconfig : List Ruleconfig =[ NoDebug.rule, NoUnused.Variables.rule]
elm-review does not come with any built-in rules. You can read why here. You can find rules in the Elm package registry by using
elm-search and searching for
Lint.Rule.Rule, and use them by going to your
review/ directory and running
elm install in your terminal.
cd review/ # Go inside your review configuration directoryelm install authorName/packageName
Run a review
Once you're done configuring, run
elm-review to analyze your project.
You can also run
elm-review --fix. The CLI will present you fixes for the errors that offer an automatic fix, which you can then accept or not. When there are no more fixable errors left,
elm-review will report the remaining errors as if it was called without
--fix. Fixed errors will be reformatted using
elm-review --help for more information on the available flags.
elm-review # Analyze your projectelm-review --fix # Analyze your project and potentially proposes automatic fixeselm-review --help # for more information and the available flags
Which parts of the project will be analyzed?
elm-review targets a project, and therefore requires an
elm.json. It will review all the Elm files of the project
- For packages: all the Elm files in
- For applications: all the Elm files in the project's
If you wish to also review your tests directory or the review configuration itself, then you should specify the directory of your project, or all the directories you want to be looked at.
# Review `src/` if project is a package, or the "source-directories" otherwiseelm-review# Review all the Elm files in the current directoryelm-review .# Review all the Elm files in the src/, tests/ and review/ directorieselm-review src/ tests/ review/
If any rule from your configuration reports an error in one of the analyzed files, the process will exit with status 1. Otherwise, it will exit with status 0.
If the process fails for any other reason (crash, misconfiguration, ...), it will exit with status 1.
Why is there a need for a review/ directory?
When the CLI uses looks at your configuration, it is in practice compiling an application using the configuration in your project, then running that application to analyze your project.
The CLI need at least two pieces of information from your configuration:
elm.jsonfile to know the external packages your configuration depends upon, and the Elm version of your project
ReviewConfig.elmfile that determines your configuration
Your custom rules, unless you want to share them in the Elm package registry, should be in the
review/ directory too, so as not to pollute your main project's dependencies. If they are in here, we need to include these custom rules and their dependencies in the application files.