【问题标题】:Cross platform ESLint command to run on current directory recursively?跨平台 ESLint 命令以递归方式在当前目录上运行?
【发布时间】:2019-09-13 21:11:37
【问题描述】:

我希望创建一个跨平台 package.json 命令以递归方式检查当前目录中的所有 .js、.ts、.tsx 文件。

这是我尝试过的。

  1. 这是直接来自ESLint CLI docs
"scripts": {
  "lint": "eslint . --ext .js,.ts,.tsx",
}

*nix - ✅ Windows - ????

在 Windows 上...

没有与模式“.”匹配的文件找到了。
请检查模式中的输入错误。


2. GLOB匹配模式。

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

*尼克斯 - ????窗户 - ✅


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

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

*nix - ✅ Windows - ????


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

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

【问题讨论】:

  • 只是好奇使用删除单引号是否能解决问题? eslint --ext .js,.ts,.tsx
  • @DanielBank,不,它没有。 . 是问题所在。我不小心把它从示例代码中遗漏了。
  • 为什么不同时运行两者?使用 &&

标签: javascript eslint


【解决方案1】:

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

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

或更短

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

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

也许有帮助。

【讨论】:

  • 我终于能够对此进行测试,并且效果很好。谢谢! ?
猜你喜欢
  • 1970-01-01
  • 2015-11-03
  • 2014-04-16
  • 1970-01-01
  • 2011-05-25
  • 2018-06-15
  • 1970-01-01
  • 2011-10-21
  • 2012-04-27
相关资源
最近更新 更多