[英]How to use TIMING=1 eslint to measure rule Performance in Windows OS
在 ESLint 官网上有一段,叫做Per-rule Performance
。
它指出
“设置TIMING
环境变量将在 linting 完成后触发显示 10 个运行时间最长的规则,以及它们各自的运行时间和相对性能影响占总规则处理时间的百分比”。
$ 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"
在package.json
的"scripts"
中运行它
npm run lint-js
在我的Windows OS
中,我得到
'TIMING' is not recognized as an internal or external command,
operable program or batch file.
如何在 Windows 操作系统中使用eslint
运行TIMING=1
?
在 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
上崩溃。
参考链接: https ://stackoverflow.com/a/36373133/13230147
我在使用 Windows 时遇到了同样的问题,我的工作团队使用 Mac,您可以尝试使用https://www.npmjs.com/package/cross-env ,这对我有用。
"lint": "cross-env TIMING=1 next lint",
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.