Checks the version of ES in JavaScript files with simple shell commands 🏆
Switch branches/tags
Clone or download
greenkeeper[bot] and yowainwright Update husky to the latest version 🚀 (#73)
* chore(package): update husky to version 1.0.0

* chore(package): update lockfile package-lock.json
Latest commit e960dd2 Sep 27, 2018

ES Check ✔️

Check JavaScript files ES version against a specified ES version 🏆

Build Status npm version Greenkeeper Codecov Share on Twitter

ES Check ✔️

Version 3 & 4 releases! 🎉 Thanks to @BrandonOCasey and @AlexandreBonneau. Adds 3 new features:

  • ES Check fails if no files are matched (breaking—only if the ES Check script is not mapped correctly)
  • ES Check fails if no ES version is matched (breaking—only if the ES version argument is not passed in correctly into the ES Check script)
  • Supports files that start with hashbang.

ES Check checks JavaScript files against a specified version of ECMAScript (ES) with a shell command. If a specified file's ES version doesn't match the ES version argument passed in the ES Check command, ES Check will throw an error and log the files that didn't match the check.

Ensuring that JavaScript files can pass ES Check is important in a modular and bundled world. Read more about why.

Get Started   Why ES Check?   Usage   Walk Through   API   Debugging   Contributing   Issues

Get Started


npm i es-check --save-dev   # locally
npm i es-check -g           # or globally

Check if an array or glob of files matches a specified ES version.

  • Note: adds quotation around globs. Globs are patterns like so, <something>/*.js.
es-check es5 './vendor/js/*.js' './dist/**/*.js'
  • The ES Check script (above) checks /dist/*.js files to see if they're ES5. It throws an error and logs files are that do not pass the check.

Why ES Check?

In modern JavaScript builds, files are bundled up so they can be served in an optimized manner in the browsers. It is assumed by developers that future JavaScript—like ES8 will be transpiled (changed from future JavaScript to current JavaScript) appropriately by a tool like Babel. Sometimes there is an issue where files are not transpiled. There was no efficient way to test for files that weren't transpiled—until now. That's what ES Check does.

>Walk through

The images below demonstrate command line scripts and their corresponding logged results.

Pass pass

Fail fail

ES Check is run above with node commands. It can also be run within npm scripts, ci tools, or testing suites.


ES Check provides the necessities. It accepts its place as a JavaScript matcher/tester.

General Information


index.js es-check <es-version> [files...]


<ecmaVersion> 'define the ECMAScript version to check for against a glob of JavaScript files' required
[files...] 'a glob of files to test the ECMAScript version against' required


Modules Flag

--module <true|false>   uses ES modules, default false

Allow Hash Bang

--allowHashBang <true|false>   supports files that start with hash bang, default false

Global Options

-h, --help         Display help
-V, --version      Display version
--no-color         Disable colors
--quiet            Quiet mode - only displays warn and error messages
-v, --verbose      Verbose mode - will also output debug messages


ES Check is a shell command CLI. It is run in shell tool like Terminal, ITerm, or Hyper. It takes in two arguments: an ECMAScript version (<ECMAScript version>) and files ([files]) in globs.

Here are some example of es check scripts that could be run:

# globs
es-check ./js/*.js

# array of arguments
es-check ./js/*.js ./dist/*.js


If you're using a consistent configuration, you can create a .escheckrc file in JSON format with the ecmaVersion and files arguments so you can conveniently run es-check standalone from the command line.

Here's an example of what an .escheckrc file will look like:

  "ecmaVersion": "es6",
  "module": false,
  "files": "./dist/**/*.js"

⚠️ NOTE: Using command line arguments while there is an .escheckrc file in the project directory will override the configuration values in .escheckrc.


As of ES-Check version 2.0.2, a better debugging interface is provided. When a file errors, An error object will be logged with:

  • the erroring file
  • the error
  • the error stack

⚠️ NOTE: Error logs are from the Acorn parser while parsing JavaScript related to specific versions of ECMAScript. This means error messaging is not specific to ECMAScript version. It still offers context into parsing issues!


ES Check is a small utility using powerful tools that Isaac Z. Schlueter, Marijn Haverbeke, and Matthias Etienne built. ES Checker by Ruan YiFeng checks the JavaScript version supported within a browser at run time. ES Check offers similar feedback to ES Checker but at build time and is specific to the product that is using it. ES Check was started after reading this post about [deploying es2015 code to production today] by Philip Walton.


ES Check has 3 main dependencies: acorn, glob, and caporal. To contribute, file an issue or submit a pull request.