CLI for prettier-eslint
prettier-eslint
You have a bunch of files that you want to format using
prettier-eslint. But
prettier-eslintcan only operate on strings.
This is a CLI that allows you to use
prettier-eslinton one or multiple files.
prettier-eslint-cliforwards on the
filePathand other relevant options to
prettier-eslintwhich identifies the applicable
ESLintconfig for each file and uses that to determine the options for
prettierand
eslint --fix.
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-cli
npmclient:npm install --save-dev prettier-eslint-cli
Typically you'll use this in your npm scripts (or package scripts):
{ "scripts": { "format": "prettier-eslint \"src/**/*.js\"" } }
This will format all
.jsfiles in the
srcdirectory. 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 users can add the following to their .vimrc:
autocmd FileType javascript set formatprg=prettier-eslint\ --stdin
This 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 gggqG
prettier-eslint --help Usage: prettier-eslint ... [--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 even if they are not ignored by .eslintignore. (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] --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 pattern(s) you wish to ignore (can be used multiple times and includes /node_modules/ automatically) --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. By default,
globwill ignore
**/node_modules/**unless the glob you provide includes the string
node_modules.
By default
prettier-eslintwill 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!
Instead of printing the formatted version of the files to the terminal,
prettier-eslintwill log the name of the files that are different from the expected formatting. This can be usefull when using
prettier-eslintin a version control system hook to inform the committer which files need to be formatted.
Accept input via
stdin. For example:
echo "var foo = 'bar'" | prettier-eslint --stdin # results in: "var foo = 'bar';" (depending on your eslint config)
Forwarded as the
eslintPathoption to
prettier-eslint
Resolve eslint config file, parse and forward config object as the
eslintConfigoption to
prettier-eslint
Forwarded as the
prettierPathoption to
prettier-eslint
Forwarded as
logLeveloption to
prettier-eslint
Disables application of
.eslintignoreto the files resolved from the glob. By default,
prettier-eslint-cliwill exclude files if they are matched by a
.eslintignore. Add this flag to disable this behavior.
Note: You can also set the
LOG_LEVELenvironment variable to control logging inprettier-eslint
By default,
prettier-eslint-cliwill run
prettierfirst, 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 --fixfirst, then
prettier. This allows you to use
eslintto look for bugs and/or bad practices, and use
prettierto enforce code style.
prettieroptions
prettier-eslint-clialso 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
Any linter that support ESLint CLIEngine interface can be integrate with
prettier-eslint
prettier-eslint-cli
Thanks goes to these people (emoji key):
|
Kent C. Dodds
๐ป ๐ ๐ โ ๏ธ |
Adam Harris
๐ป ๐ ๐ |
Eric McCormick
๐ |
Joel Sequeira
๐ |
Frank Taillandier
|
Adam Stankiewicz
๐ป |
Stephen John Sorensen
๐ป |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
|
Gandem
๐ป โ ๏ธ |
Matteo Ronchi
๐ ๐ป |
Benoรฎt Zugmeyer
๐ป โ ๏ธ |
Charlike Mike Reagent
๐ป โ ๏ธ |
Dion Dirza
๐ |
mrm007
๐ ๐ป |
Jack Franklin
๐ป |
|
Ryan Zimmerman
๐ |
Paolo Moretti
๐ ๐ป โ ๏ธ |
bySabi Files
๐ ๐ง |
Pavel Pertsev
๐ป โ ๏ธ |
Josh English
โ ๏ธ ๐ ๐ป ๐ |
Spenser Isdahl
๐ป ๐ โ ๏ธ |
Bjรถrn Dalfors
๐ |
This project follows the all-contributors specification. Contributions of any kind welcome!
MIT