在ESLint官网,有一段话,叫做
Per-rule Performance
。
它指出
“设置
TIMING
环境变量将在 linting 完成后触发显示十个运行时间最长的规则,以及它们各自的运行时间和占总规则处理时间百分比的相对性能影响”。
$ 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%
但是,当我添加
"lint-js": "TIMING=1 eslint --ext .js,.jsx,.ts,.tsx src/js --cache --cache-strategy metadata"
在
"scripts"
中的 package.json
并使用 运行它
npm run lint-js
在我的
Windows OS
中,我明白
'TIMING' is not recognized as an internal or external command,
operable program or batch file.
如何在Windows操作系统中使用
TIMING=1
运行eslint
?
在 Windows 中,应使用
set
命令设置环境变量。
从命令行尝试以下操作:
set TIMING=1
npx eslint --ext .js,.jsx,.ts,.tsx src/js --cache --cache-strategy metadata
您有两个选择:使用 set 命令或使用外部工具(如 cross-env):
"lint-js": "set TIMING=1 && eslint --ext .js,.jsx,.ts,.tsx src/js --cache --cache-strategy metadata"
安装:
npm install -D cross-env
然后将脚本命令更改为:
"lint-js": "cross-env TIMING=1 eslint --ext .js,.jsx,.ts,.tsx src/js --cache --cache-strategy metadata"
经过一番研究,我找到了一个简单的方法来解决跨平台问题。
"lint-js": "export TIMING=1 || set TIMING=1&& eslint --ext .js,.jsx,.ts,.tsx src/js --cache --cache-strategy metadata"
竖线是必需的,否则 Windows 会在无法识别的地方崩溃
export
。
我在使用 Windows 时遇到了同样的问题,我的工作团队使用 Mac,你可以尝试使用 https://www.npmjs.com/package/cross-env,这对我有用。
"lint": "cross-env TIMING=1 next lint",
在cmd中使用
set TIMING=1
或在powershell中使用$env:TIMING=1