1

In ESLint official website, there is a paragraph, called Per-rule Performance.

It states that

"setting the TIMING environment variable will trigger the display, upon linting completion, of the ten longest-running rules, along with their individual running time and relative performance impact as a percentage of total rule processing time".

$ TIMING=1 eslint lib
Rule                    | Time (ms) | Relative
:-----------------------|----------:|--------:
no-multi-spaces         |    52.472 |     6.1%
camelcase               |    48.684 |     5.7%
no-irregular-whitespace |    43.847 |     5.1%
valid-jsdoc             |    40.346 |     4.7%
handle-callback-err     |    39.153 |     4.6%
space-infix-ops         |    35.444 |     4.1%
no-undefined            |    25.693 |     3.0%
no-shadow               |    22.759 |     2.7%
no-empty-class          |    21.976 |     2.6%
semi                    |    19.359 |     2.3%

However, when I add

"lint-js": "TIMING=1 eslint --ext .js,.jsx,.ts,.tsx src/js --cache --cache-strategy metadata"

in the "scripts" in package.json and run it with

npm run lint-js

in my Windows OS, I get

'TIMING' is not recognized as an internal or external command,
operable program or batch file.

How to run TIMING=1 with eslint in Windows OS?

obelisk0114
  • 201
  • 3
  • 13

4 Answers4

3

In Windows environment variables should be set using the set command.

Try the following from the command line:

set TIMING=1
npx eslint --ext .js,.jsx,.ts,.tsx src/js --cache --cache-strategy metadata
doberkofler
  • 9,511
  • 18
  • 74
  • 126
3

You have two options: work with the set command or use an external tool like cross-env:

Using set (Windows only)

"lint-js": "set TIMING=1 && eslint --ext .js,.jsx,.ts,.tsx src/js --cache --cache-strategy metadata"

Using cross-env

Install with:

npm install -D cross-env

Then change the script command to:

"lint-js": "cross-env TIMING=1 eslint --ext .js,.jsx,.ts,.tsx src/js --cache --cache-strategy metadata"
GOTO 0
  • 42,323
  • 22
  • 125
  • 158
2

After some researching, I found a simple way to solve cross-platform issue.

"lint-js": "export TIMING=1 || set TIMING=1&& eslint --ext .js,.jsx,.ts,.tsx src/js --cache --cache-strategy metadata"

The vertical bars are needed as otherwise Windows would crash on the unrecognized export.

Reference link: https://stackoverflow.com/a/36373133/13230147

obelisk0114
  • 201
  • 3
  • 13
0

I had the same problem using Windows, my work team use Mac you can try using https://www.npmjs.com/package/cross-env, that worked for me.

"lint": "cross-env TIMING=1 next lint",