Quick validation of files with EditorConfig.
The easiest way to use ECHint to check your code is to install it globally as a Node command line program. To do so, simply run the following command in your terminal (flag -g
installs echint
globally on your system, omit it if you want to install in the current working directory):
npm install --only=production --save --global echint
After you've done that you should be able to use the echint
CLI. The simplest use case would be checking all files in the current working directory:
$ echint
Error: some files did not pass EditorConfig validation:
src/index.js:97 Expected a newline at the end of the file.
src/path/data.json:2 Unexpected tabs found.
You can optionally pass one or more paths using the glob pattern:
$ echint *.js docs/**/*.md
The path node_modules/**
and hidden files/folders (beginning with .
) are automatically excluded when looking for files to check.
Sometimes you need to ignore additional folders or specific minified files. To do that, add a echint.ignore
property to package.json
:
"echint": {
"ignore": [
"**/out/**",
"**/build/**"
]
}
Yes, you may prefer to check your code against a centralized .editorconfig
. To do that, add a echint.extends
property to package.json
:
"echint": {
"extends": "echint-config-some-config"
}
echint will use the main
property or .editorconfig
file from that package as the configuration. The echint-config-
prefix will be added automatically if it is not already present.
echint uses dotenv
to load the following environment config values:
name | type | description |
---|---|---|
ECHINT_CONFIG |
string |
path to .editorconfig file |
ECHINT_IGNORE |
string |
pattern of files to ignore |
ECHINT_PATTERN |
string |
pattern of file to process |
ECHINT_READ_PACKAGE |
string |
read additional options from package.json ("true" , "false" ) |
you can create a local .env
or .env.[NODE_ENV]
file to modify echint's default behavior (where NODE_ENV
is the name of your environment), or you can test this directly from the shell:
$ ECHINT_CONFIG=**/* echint *.js docs/**/*.md
- Add it to
package.json
{
"name": "my-cool-package",
"devDependencies": {
"echint": "^1.0.0"
},
"scripts": {
"test": "echint && node my-tests.js"
}
}
- Validate all files automatically when you run
npm test
$ npm test
Error: some files did not pass EditorConfig validation:
src/index.js:97 Expected a newline at the end of the file.
src/path/data.json:2 Unexpected tabs found.
- Never deal with inconsistencies in a pull request again!
Usage: echint [options] <file ...>
Options:
-h, --help output usage information
-V, --version output the version number
-c, --config [path] specify path for config file (defaults to ./.editorconfig)
-i, --ignore [file] files to ignore
-p, --skip-package whether to skip reading config info from package.json
-q, --quiet shhh
-v, --verbose detailed errors
# run with defaults
$ echint
# run on a subset of files
$ echint *.js *.md --verbose
# ignore some files
$ echint * --ignore *.md --verbose
# use custom config file path
$ echint --config ~/.editorconfig --verbose
validate everything in current directory
returns true
| false
name | type | description | required | default |
---|---|---|---|---|
files |
mixed |
manually defined list of files to process | no |
**/* |
options |
mixed |
see options |
no |
|
callback |
mixed |
see callback |
no |
undefined |
name | type | description | required | default |
---|---|---|---|---|
config |
string |
path to .editorconfig file |
no |
**/* |
ignore |
array |
array of files & patterns to ignore | no |
['coverage/**', 'node_modules/**', 'bower_components/**', '**[.jpg,.png,.gif,.ico] |
pattern |
string |
pattern of file to process | no |
**/* |
readPackage |
boolean |
read additional options from package.json |
no |
true |
pass a callback with the following signature:
function (errors, result) {
/* typeof errors === 'object' */
/* typeof result === 'boolean' */
/*
errors = {
fileName: {
lineNumber: [
error details
]
}
}
*/
}
import echint from 'echint'
const files = [
'path/to/file.js',
'path/to/file.css'
]
const options = {
config: 'path/to/.editorconfig'
}
function done (errors, valid) {
if (!valid) {
console.log(errors)
}
}
// with defaults
echint()
// with file list
echint(files)
// with options
echint(options)
// with callback
echint(done)
// all together!
echint(files, done)
echint(files, options)
echint(files, options, done)
echint(options, done)
©️ ahmadnassri.com · License: ISC · Github: @ahmadnassri · Twitter: @ahmadnassri