如何告诉 Prettier 忽略 package.json 文件?

Posted

技术标签:

【中文标题】如何告诉 Prettier 忽略 package.json 文件?【英文标题】:How can I tell Prettier to ignore a package.json file? 【发布时间】:2018-03-06 16:47:37 【问题描述】:

我正在使用更漂亮的标准,因为该项目使用标准进行 linting。

按照prettier pre-commit hook example,我在提交时运行得更漂亮了。但是我想忽略 package.json 文件。我尝试将package.json 添加到 .prettierignore 文件中,但这不起作用。

我在 package.json 中使用的更漂亮的预提交挂钩示例中的代码


  "scripts": 
    "precommit": "lint-staged"
  ,
  "lint-staged": 
     "*.js,json,css": [
       "prettier --write",
       "git add"
     ]
  

```

【问题讨论】:

我刚刚从匹配中删除了 json,例如"*.js,css"。由于它使用 minimatch,您可能可以包含一个否定匹配来排除 package.json,但仍然包含其他 json 文件。 【参考方案1】:

您也可以使用.prettierignore 文件。

参考the prettier project itself。

【讨论】:

我错过了你问题中的那部分,抱歉。也许您在预提交挂钩中使用的工具没有考虑该文件。【参考方案2】:

这里的限制是由于使用 lint-staged 的​​方式。 我个人最终使用了一个简单的命令(对我来说足够快),没有 lint-staged(但仍然使用 husky+precommit)。

prettier --write "**/*.js,json,css,md" !package.json

此命令在我的 package.json 中作为“格式”脚本。

"precommit": "yarn format", // can be "npm run format"
"format": "prettier --write \"**/*.js,json,css,md\" \"!package.json\""

请注意转义的引号。

【讨论】:

可以用单引号代替反斜杠,这样比较整洁。 "format": "prettier --write '**/*.ts,md,json' '!package.json'"

以上是关于如何告诉 Prettier 忽略 package.json 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何只在我想要提交的文件上运行 Prettier?

如何在 Vue 模板文件中配置 eslint prettier 禁用样式?

有没有办法告诉gcc忽略“”?

Prettier 没有按规定缩进

找不到模块“eslint-plugin-prettier”

保存时 VSCode Prettier 警告 - Arrow Parens