【问题标题】:What does "*.+(js|jsx)" mean in package.json?package.json 中的“*.+(js|jsx)”是什么意思?
【发布时间】:2021-08-01 13:56:23
【问题描述】:

我正在为我的 Next.js 项目设置 ESLintPrettier。我关注了this one的一篇文章。

到目前为止,这是我的package.json 文件(部分):

  "lint-staged": {
    "*.{js,jsx}": [
      "eslint '*/**/*.{js,jsx}' --fix"
    ]
  }

虽然我已经复制和粘贴,但无法理解*.{js,jsx}*/**/*.{js,jsx} 这些模式的实际含义是什么?另外:*.+(js|jsx)想了解这个模式。

【问题讨论】:

  • *.+(js|jsx) 似乎是正则表达式的一部分。 Glob 是 shell 实现的文件路径匹配。

标签: javascript eslint glob prettier


【解决方案1】:

它类似于正则表达式,称为glob pattern,因此它知道应该将命令应用于哪些文件。

foo.js 匹配
bar.php 不匹配。

第二个是实际的 JS lint 命令。这基本上意味着与该结构匹配的所有内容都会获得eslint

您也可以设置"eslint 'src/javascript/*.{js,jsx}' --fix",例如,如果这是您希望它检查的唯一目录,则不理会所有其他 JS 文件。

【讨论】:

  • 这不是一个正则表达式,因为如果它是 * 将是从零到无穷大的量词,. 将是任何字符,{js,jsx} 将无效,因为它应该是一个量词,但没有最小值和最大值的数字。
  • 这是一个glob pattern(或者可能是某种“扩展形式”或它)。
  • 想保持简单,但我想我应该使用正确的术语:)
猜你喜欢
  • 2018-01-24
  • 2019-07-22
  • 2021-09-27
  • 1970-01-01
  • 2011-06-18
  • 2014-04-03
  • 2021-06-26
  • 2017-10-09
相关资源
最近更新 更多