npm 如何在Windows操作系统中使用TIMING=1 eslint测量规则性能

r7knjye2  于 12个月前  发布在  Windows
关注(0)|答案(5)|浏览(124)

在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"

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操作系统中运行TIMING=1eslint

toiithl6

toiithl61#

经过研究,我发现了一个简单的方法来解决跨平台问题。

"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

yvt65v4c

yvt65v4c2#

在Windows环境中,应使用set命令设置变量。
从命令行尝试以下操作:

set TIMING=1
npx eslint --ext .js,.jsx,.ts,.tsx src/js --cache --cache-strategy metadata
4xy9mtcn

4xy9mtcn3#

你有两个选择:使用set命令或使用外部工具(如cross-env):

使用set(仅限Windows)

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

使用cross-env

安装方式:

npm install -D cross-env

然后将脚本命令更改为:

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

3okqufwl4#

我在使用Windows时也遇到了同样的问题,我的工作团队使用Mac,你可以尝试使用https://www.npmjs.com/package/cross-env,这对我很有效。

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

uxhixvfz5#

在cmd中使用set TIMING=1或在powershell中使用$env:TIMING=1

相关问题