prettier
Prettier is the industry-standard opinionated code formatter with excellent JSON support that automatically formats JSON files for consistency and readability. It brings professional formatting standards to JSON data across configuration files, APIs, and data structures.
Key Features:
- JSON-Specific Formatting: Specialized handling of JSON syntax with proper indentation, spacing, and structure
- Consistent Output: Deterministic formatting ensures identical results across different environments and developers
- Parse Safety: AST-based processing validates JSON syntax while formatting, catching errors during formatting
- Opinionated Approach: Zero-configuration setup with sensible defaults optimized for JSON readability
- Fast Performance: High-speed formatting suitable for large JSON files
- Nested Structure Handling: Intelligent formatting of complex nested objects and arrays for optimal readability
- Team Standardization: Eliminates JSON formatting debates and ensures uniform data structure presentation
- Configuration Flexibility: Supports project-specific formatting rules through .prettierrc when customization is needed
prettier documentation
- Version in MegaLinter: 3.6.2
- Visit Official Web Site
- See How to configure prettier rules
- See How to disable prettier rules in files
- See Index of problems detected by prettier
Configuration in MegaLinter
- Enable prettier by adding
JSON_PRETTIER
in ENABLE_LINTERS variable - Disable prettier by adding
JSON_PRETTIER
in DISABLE_LINTERS variable
- Enable autofixes by adding
JSON_PRETTIER
in APPLY_FIXES variable
Variable | Description | Default value |
---|---|---|
JSON_PRETTIER_ARGUMENTS | User custom arguments to add in linter CLI call Ex: -s --foo "bar" |
|
JSON_PRETTIER_COMMAND_REMOVE_ARGUMENTS | User custom arguments to remove from command line before calling the linter Ex: -s --foo "bar" |
|
JSON_PRETTIER_FILTER_REGEX_INCLUDE | Custom regex including filter Ex: (src\|lib) |
Include every file |
JSON_PRETTIER_FILTER_REGEX_EXCLUDE | Custom regex excluding filter Ex: (test\|examples) |
Exclude no file |
JSON_PRETTIER_CLI_LINT_MODE | Override default CLI lint mode - file : Calls the linter for each file- list_of_files : Call the linter with the list of files as argument- project : Call the linter from the root of the project |
list_of_files |
JSON_PRETTIER_FILE_EXTENSIONS | Allowed file extensions. "*" matches any extension, "" matches empty extension. Empty list excludes all filesEx: [".py", ""] |
[".json"] |
JSON_PRETTIER_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files Ex: ["Dockerfile(-.+)?", "Jenkinsfile"] |
Include every file |
JSON_PRETTIER_PRE_COMMANDS | List of bash commands to run before the linter | None |
JSON_PRETTIER_POST_COMMANDS | List of bash commands to run after the linter | None |
JSON_PRETTIER_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling JSON_PRETTIER and its pre/post commands | None |
JSON_PRETTIER_CONFIG_FILE | prettier configuration file nameUse LINTER_DEFAULT to let the linter find it |
.prettierrc.json |
JSON_PRETTIER_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules |
JSON_PRETTIER_DISABLE_ERRORS | Run linter but consider errors as warnings | true |
JSON_PRETTIER_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | 0 |
JSON_PRETTIER_CLI_EXECUTABLE | Override CLI executable | ['prettier'] |
IDE Integration
Use prettier in your favorite IDE to catch errors before MegaLinter !
IDE | Extension Name | Install | |
---|---|---|---|
Emacs | prettier-emacs | Visit Web Site | |
Emacs | prettier.el | Visit Web Site | |
Emacs | apheleia | Visit Web Site | |
IDEA | Prettier | ||
Sublime Text | JsPrettier | Visit Web Site | |
vim | vim-prettier | Visit Web Site | |
visual_studio | JavaScriptPrettier | Visit Web Site | |
Visual Studio Code | prettier-vscode | ![]() |
MegaLinter Flavors
This linter is available in the following flavors
Flavor | Description | Embedded linters | Info | |
---|---|---|---|---|
![]() |
all | Default MegaLinter Flavor | 126 | |
c_cpp | Optimized for pure C/C++ projects | 56 | ||
ci_light | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ||
cupcake | MegaLinter for the most commonly used languages | 87 | ||
documentation | MegaLinter for documentation projects | 49 | ||
dotnet | Optimized for C, C++, C# or VB based projects | 64 | ||
dotnetweb | Optimized for C, C++, C# or VB based projects with JS/TS | 73 | ||
formatters | Contains only formatters | 18 | ||
go | Optimized for GO based projects | 51 | ||
java | Optimized for JAVA based projects | 54 | ||
javascript | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 59 | ||
php | Optimized for PHP based projects | 54 | ||
python | Optimized for PYTHON based projects | 65 | ||
ruby | Optimized for RUBY based projects | 50 | ||
rust | Optimized for RUST based projects | 50 | ||
salesforce | Optimized for Salesforce based projects | 54 | ||
swift | Optimized for SWIFT based projects | 50 | ||
terraform | Optimized for TERRAFORM based projects | 54 |
Behind the scenes
How are identified applicable files
- File extensions:
.json
How the linting is performed
- prettier is called once with the list of files as arguments (
list_of_files
CLI lint mode)
Example calls
prettier --check myfile.json
prettier --config .prettierrc.json --check myfile.json
prettier --config .prettierrc.json --write myfile.json
Help content
Usage: prettier [options] [file/dir/glob ...]
By default, output is written to stdout.
Stdin is read if it is piped to Prettier and no files are given.
Output options:
-c, --check Check if the given files are formatted, print a human-friendly summary
message and paths to unformatted files (see also --list-different).
-l, --list-different Print the names of files that are different from Prettier's formatting (see also --check).
-w, --write Edit files in-place. (Beware!)
Format options:
--arrow-parens <always|avoid>
Include parentheses around a sole arrow function parameter.
Defaults to always.
--bracket-same-line Put > of opening tags on the last line instead of on a new line.
Defaults to false.
--no-bracket-spacing Do not print spaces between brackets.
--embedded-language-formatting <auto|off>
Control how Prettier formats quoted code embedded in the file.
Defaults to auto.
--end-of-line <lf|crlf|cr|auto>
Which end of line characters to apply.
Defaults to lf.
--experimental-operator-position <start|end>
Where to print operators when binary expressions wrap lines.
Defaults to end.
--no-experimental-ternaries
Default behavior of ternaries; keep question marks on the same line as the consequent.
--html-whitespace-sensitivity <css|strict|ignore>
How to handle whitespaces in HTML.
Defaults to css.
--jsx-single-quote Use single quotes in JSX.
Defaults to false.
--object-wrap <preserve|collapse>
How to wrap object literals.
Defaults to preserve.
--parser <flow|babel|babel-flow|babel-ts|typescript|acorn|espree|meriyah|css|less|scss|json|json5|jsonc|json-stringify|graphql|markdown|mdx|vue|yaml|glimmer|html|angular|lwc|mjml>
Which parser to use.
--print-width <int> The line length where Prettier will try wrap.
Defaults to 80.
--prose-wrap <always|never|preserve>
How to wrap prose.
Defaults to preserve.
--quote-props <as-needed|consistent|preserve>
Change when properties in objects are quoted.
Defaults to as-needed.
--no-semi Do not print semicolons, except at the beginning of lines which may need them.
--single-attribute-per-line
Enforce single attribute per line in HTML, Vue and JSX.
Defaults to false.
--single-quote Use single quotes instead of double quotes.
Defaults to false.
--tab-width <int> Number of spaces per indentation level.
Defaults to 2.
--trailing-comma <all|es5|none>
Print trailing commas wherever possible when multi-line.
Defaults to all.
--use-tabs Indent with tabs instead of spaces.
Defaults to false.
--vue-indent-script-and-style
Indent script and style tags in Vue files.
Defaults to false.
Config options:
--config <path> Path to a Prettier configuration file (.prettierrc, package.json, prettier.config.js).
--no-config Do not look for a configuration file.
--config-precedence <cli-override|file-override|prefer-file>
Define in which order config files and CLI options should be evaluated.
Defaults to cli-override.
--no-editorconfig Don't take .editorconfig into account when parsing configuration.
--find-config-path <path>
Find and print the path to a configuration file for the given input file.
--ignore-path <path> Path to a file with patterns describing files to ignore.
Multiple values are accepted.
Defaults to [.gitignore, .prettierignore].
--plugin <path> Add a plugin. Multiple plugins can be passed as separate `--plugin`s.
Defaults to [].
--with-node-modules Process files inside 'node_modules' directory.
Editor options:
--cursor-offset <int> Print (to stderr) where a cursor at the given position would move to after formatting.
Defaults to -1.
--range-end <int> Format code ending at a given character offset (exclusive).
The range will extend forwards to the end of the selected statement.
Defaults to Infinity.
--range-start <int> Format code starting at a given character offset.
The range will extend backwards to the start of the first line containing the selected statement.
Defaults to 0.
Other options:
--cache Only format changed files. Cannot use with --stdin-filepath.
Defaults to false.
--cache-location <path> Path to the cache file.
--cache-strategy <metadata|content>
Strategy for the cache to use for detecting changed files.
--check-ignore-pragma Check whether the file's first docblock comment contains '@noprettier' or '@noformat' to determine if it should be formatted.
Defaults to false.
--no-color Do not colorize error messages.
--no-error-on-unmatched-pattern
Prevent errors when pattern is unmatched.
--file-info <path> Extract the following info (as JSON) for a given file path. Reported fields:
* ignored (boolean) - true if file path is filtered by --ignore-path
* inferredParser (string | null) - name of parser inferred from file path
-h, --help <flag> Show CLI usage, or details about the given flag.
Example: --help write
-u, --ignore-unknown Ignore unknown files.
--insert-pragma Insert @format pragma into file's first docblock comment.
Defaults to false.
--log-level <silent|error|warn|log|debug>
What level of logs to report.
Defaults to log.
--require-pragma Require either '@prettier' or '@format' to be present in the file's first docblock comment in order for it to be formatted.
Defaults to false.
--stdin-filepath <path> Path to the file to pretend that stdin comes from.
--support-info Print support information as JSON.
-v, --version Print Prettier version.
Installation on mega-linter Docker image
- Dockerfile commands :
# renovate: datasource=npm depName=prettier
ARG NPM_PRETTIER_VERSION=3.6.2
- NPM packages (node.js):