跨平台 ESLint 命令递归地在当前目录上运行?

Gol*_*Jer 6 javascript eslint

我正在寻找创建一个跨平台 package.json命令,以递归方式对当前目录中的所有 .js、.ts、.tsx 文件进行 lint。

这是我尝试过的。

  1. 这直接来自ESLint CLI 文档
"scripts": {
  "lint": "eslint . --ext .js,.ts,.tsx",
}
Run Code Online (Sandbox Code Playgroud)

*尼克斯 - ?窗户 -

在 Windows 上...

没有与模式“.”匹配的文件 被找到。
请检查模式中是否有打字错误。


2. GLOB 匹配模式。

"scripts": {
  "lint": "eslint **/*.js **/*.ts **/*.tsx",
}
Run Code Online (Sandbox Code Playgroud)

*nix - Windows - ?


3. 带引号的 GLOB 匹配模式。

"scripts": {
  "lint": "eslint '**/*.js' '**/*.ts' '**/*.tsx'",
}
Run Code Online (Sandbox Code Playgroud)

*尼克斯 - ?窗户 -


这是一个跨平台项目,开发人员使用 Mac、Linux 和 Windows。

我如何让这个单一的命令对所有三个都起作用?

Ali*_*tor 9

我现在正在处理类似的问题。我在类似的事情上取得了成功。

"scripts": {
  "lint": "eslint \"**/*.js\" \"**/*.ts\" \"**/*.tsx\"",
}
Run Code Online (Sandbox Code Playgroud)

或更短

"scripts": {
  "lint": "eslint \"**/*.{js,ts,tsx}\"",
}
Run Code Online (Sandbox Code Playgroud)

用转义的双引号替换单引号实际上是一种非 eslint 特定的模式。

也许它有帮助。