如何在当前目录递归运行跨平台的 ESLint 命令?

6
我想创建一个跨平台的package.json命令,用于递归地检查当前目录中所有.js、.ts和.tsx文件的语法错误。以下是我的尝试:
  1. 这是直接从ESLint CLI文档中复制的。
"scripts": {
  "lint": "eslint . --ext .js,.ts,.tsx",
}

*nix - ✅ Windows -
在Windows上...
引用: 未找到与模式“.”匹配的文件。 请检查模式中是否有输入错误。
2. GLOB匹配模式。
"scripts": {
  "lint": "eslint **/*.js **/*.ts **/*.tsx",
}

*nix - Windows - ✅
3. 使用引号的GLOB匹配模式。
"scripts": {
  "lint": "eslint '**/*.js' '**/*.ts' '**/*.tsx'",
}

*nix - ✅ Windows -
这是一个跨平台项目,开发者使用 Mac、Linux 和 Windows。
我该如何让这个单一命令在这三个平台上都能工作?

只是好奇,如果去掉单引号是否可以解决这个问题? eslint --ext .js,.ts,.tsx - Daniel Bank
@DanielBank,不是的。问题出在“.”上。我在示例代码中不小心漏掉了它。 - GollyJer
为什么不使用 && 运算符同时运行两个操作呢? - Deckerz
1个回答

9

我现在正在处理类似的问题。

我使用了类似下面这样的方法,取得了成功。

"scripts": {
  "lint": "eslint \"**/*.js\" \"**/*.ts\" \"**/*.tsx\"",
}

或更短
"scripts": {
  "lint": "eslint \"**/*.{js,ts,tsx}\"",
}

将单引号替换为转义双引号实际上是一种模式,而不是特定于eslint的。

也许这会有所帮助。


我终于能够测试它并且它完美地工作了。谢谢! - GollyJer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接