Package Exports
- prettier-eslint-cli
- prettier-eslint-cli/dist/add-exception-handler
- prettier-eslint-cli/dist/add-exception-handler.js
- prettier-eslint-cli/dist/format-files
- prettier-eslint-cli/dist/format-files.js
- prettier-eslint-cli/dist/index.js
- prettier-eslint-cli/dist/no-main.js
- prettier-eslint-cli/dist/parser
- prettier-eslint-cli/dist/parser.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (prettier-eslint-cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
prettier-eslint-cli
CLI for prettier-eslint
The problem
You have a bunch of files that you want to format using prettier-eslint.
But prettier-eslint can only operate on strings.
This solution
This is a CLI that allows you to use
prettier-eslint on one or multiple files. prettier-eslint-cli forwards on the filePath
and other relevant options to prettier-eslint which identifies the applicable ESLint
config for each file and uses that to determine the options for prettier and eslint --fix.
Installation
This module is distributed via npm which is bundled with node and should
be installed (with yarn) as one of your project's devDependencies:
yarn add --dev prettier-eslint-cliIf you're still using the
npmclient:npm install --save-dev prettier-eslint-cli
Usage
Typically you'll use this in your npm scripts (or package scripts):
{
"scripts": {
"format": "prettier-eslint \"src/**/*.js\""
}
}This will format all .js files in the src directory. The argument you pass to the CLI
is a glob and you can pass as many as you wish. You can also pass options.
Vim
Vim users can add the following to their .vimrc:
autocmd FileType javascript set formatprg=prettier-eslint\ --stdinThis makes prettier-eslint-cli power the gq command for automatic formatting without any plugins. You can also add the following to your .vimrc to run prettier-eslint-cli when .js files are saved:
autocmd BufWritePre *.js :normal gggqGCLI Options
prettier-eslint --help
Usage: prettier-eslint <globs>... [--option-1 option-1-value --option-2]
Prefix an option with "no-" to set it to false, such as --no-semi to
disable semicolons and --no-eslint-ignore to disable default ignores.
Options:
-h, --help Show help [boolean]
--version Show version number [boolean]
--write Edit the file in-place (beware!)
[boolean] [default: false]
--stdin Read input via stdin [boolean] [default: false]
--stdin-filepath Path to the file to pretend that stdin comes from.
--eslint-ignore Only format matching files when they are not ignored
by ESLint config or default ignores. (can use
--no-eslint-ignore to disable this) [boolean] [default: true]
--prettier-ignore Only format matching files even if they are not
ignored by .prettierignore. (can use
--no-prettier-ignore to disable this)
[boolean] [default: true]
--list-different Print filenames of files that are different from
Prettier + Eslint formatting.
[boolean] [default: false]
--include-dot-files Include files that start with a dot in the search.
[boolean] [default: false]
--eslint-path The path to the eslint module to use
[default: "./node_modules/eslint"]
--eslint-config-path Path to the eslint config to use for eslint --fix
--prettier-path The path to the prettier module to use [default: "./node_modules/prettier"]
--config Path to the prettier config
--ignore ESLint-style pattern(s) you wish to ignore (can be
used multiple times)
--log-level, -l The log level to use
[choices: "silent", "error", "warn", "info", "debug", "trace"] [default:
"warn"]
--prettier-last Run prettier last [boolean] [default: false]
--use-tabs Indent lines with tabs instead of spaces. [boolean]
--print-width Specify the length of line that the printer will wrap
on. [number]
--tab-width Specify the number of spaces per indentation-level.
[number]
--trailing-comma Print trailing commas wherever possible.
Valid options:
- "none" - no trailing commas
- "es5" - trailing commas where valid in ES5
(objects, arrays, etc)
- "all" - trailing commas wherever possible (function
arguments) [string] [choices: "none", "es5", "all"]
--bracket-spacing Print spaces between brackets in object literals.
Can use --no-bracket-spacing for "false" to disable
it.
Valid options:
- true - Example: { foo: bar }
- false - Example: {foo: bar} [boolean]
--jsx-bracket-same-line Put the > of a multi-line JSX element at the end of
the last line instead of being alone on the next line
[boolean]
--parser Specify which parser to use. [string]
--semi Print semicolons at the ends of statements.
Can use --no-semi.
Valid options:
- true - add a semicolon at the end of every
statement
- false - only add semicolons at the beginning of
lines that may introduce ASI failures [boolean]
--single-quote Use single quotes instead of double quotes. [boolean]Any number of globs you wish to use to match the files you wish to format. ESLint's default ignores are applied, so node_modules/ and .git/ entries are skipped unless you explicitly unignore them with --ignore negation patterns such as --ignore '!**/node_modules/'.
--write
By default prettier-eslint will simply log the formatted version to the terminal. If you want to overwrite the file
itself (a common use-case) then add --write. You should quote your globs, otherwise your terminal will expand the glob before it gets to prettier-eslint (which can have unexpected results):
{
"scripts": {
"format": "prettier-eslint --write \"src/**/*.js\""
}
}NOTE: It is recommended that you keep your files under source control and committed before running
prettier-eslint --writeas it will overwrite your files!
--list-different
Instead of printing the formatted version of the files to the terminal, prettier-eslint will log the name of the files that are different from the expected formatting. This can be usefull when using prettier-eslint in a version control system hook to inform the committer which files need to be formatted.
--stdin
Accept input via stdin. For example:
echo "var foo = 'bar'" | prettier-eslint --stdin
# results in: "var foo = 'bar';" (depending on your eslint config)--eslint-path
Forwarded as the eslintPath option to prettier-eslint
--eslint-config-path
Resolve eslint config file, parse and forward config object as the eslintConfig option to
prettier-eslint
--prettier-path
Forwarded as the prettierPath option to prettier-eslint
--log-level
Forwarded as logLevel option to prettier-eslint
--no-eslint-ignore
Disables ESLint config and default ignores for files resolved from the glob. By
default, prettier-eslint-cli excludes files matched by ESLint config ignores,
plus default ignores like node_modules/ and .git/. Use ESLint-style --ignore
negation patterns such as --ignore '!**/node_modules/' to unignore specific
paths without disabling all ESLint ignore handling.
Note: You can also set the
LOG_LEVELenvironment variable to control logging inprettier-eslint
--prettier-last
By default, prettier-eslint-cli will run prettier first, then eslint --fix. This is great if
you want to use prettier, but override some of the styles you don't like using eslint --fix.
An alternative approach is to use different tools for different concerns. If you provide the
argument --prettier-last, it will run eslint --fix first, then prettier. This allows you to
use eslint to look for bugs and/or bad practices, and use prettier to enforce code style.
prettier options
prettier-eslint-cli also supports the same command line options as prettier.
For example: prettier-eslint --trailing-comma es5
Refer to the prettier-eslint docs for documentation on these options
Integration
Any linter that support ESLint CLIEngine interface can be integrate with prettier-eslint
Knowed integrated package helpers
- standard-prettier-eslint, a helper package for integrate standard
- semistandard-prettier-eslint, a helper package for integrate semistandard
Standalone CLI tools based on prettier-eslint-cli
- prettier-std-cli the easy to use CLI version of standard-prettier-eslint
- prettier-semi-cli the easy to use CLI version of semistandard-prettier-eslint
Related
- prettier-eslint - the core package
- prettier-eslint-atom - an atom plugin
Contributors
Thanks goes to these people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
LICENSE
MIT