如何告诉 prettier 递归解析文件?

Posted

技术标签:

【中文标题】如何告诉 prettier 递归解析文件?【英文标题】:How can I tell prettier to parse files recursively? 【发布时间】:2017-10-01 12:44:39 【问题描述】:

我想请 prettier 递归解析我的 javascript 文件,而不是指定它应该检查文件的每个文件夹。

我想做这样的事情:

prettier --write "all_js_files_except_node_modules_folder"

我在他们的文档中找不到太多内容。有什么建议吗?

谢谢, 保罗

【问题讨论】:

【参考方案1】:

几周前的This issue 似乎回答了你的问题。 TL;DR:

prettier ",!(node_modules)/**/*.js"

【讨论】:

【参考方案2】:

如果你和我一样,你不知道目标文件使用 glob 格式。

您可以阅读更多关于它的信息here。 (查看有关特殊字符的说明)。如果您想了解更多信息,请点击此处:http://tldp.org/LDP/abs/html/globbingref.html

我的文件夹结构:

components/
pages/
node_modules/
package.json    
server.js

我想忽略package.jsonnode_modules/。我用这个命令解决了我的需求:

prettier --write "*.js,!(node*)**/*.js"`

是一种扩展机制,它允许我使用多个过滤条件。就我而言,有 2 个:

1:*.js:定位到执行命令的根目录下的所有JS文件

2:!(node*)**/*.js:定位所有文件夹和子文件夹中的所有JS文件(递归部分使用**获取)

【讨论】:

【参考方案3】:

对于需要简单示例(无括号,ors 等)的剪切和粘贴,这可能是一个有用的 glob 示例:

prettier --write "app/**/*.ts"

app 及以下目录中的每个*.ts 文件进行更漂亮的处理。

【讨论】:

【参考方案4】:

这个解决方案最适合我。这是我发现的唯一一种不管嵌套程度如何都会命中每个文件的方法:

package.json

  "scripts": 
    "format": "prettier --write ,*/**/*.js,jsx,json",
  ,

.prettierignore

node_modules
build

【讨论】:

【参考方案5】:

只需运行prettier --write .

并使用.prettierignore 文件告诉它要忽略什么,但默认情况下它会忽略node_modules

【讨论】:

【参考方案6】:

添加为 npm 脚本对我有用:

package.json 定义的 npm 脚本

它将递归修复以下文件。ext使用prettierrc文件中定义的以下规则集。

重要:. 例如'./src/**/*.js,jsx,scss,md,json'(包括所有文件和文件夹)

不要错过引号 -> ' PATH>。'

    "name": "compentence-journey",
    "version": "0.1.0",
    "private": true,
    "scripts": 
    "prettier.fix": "prettier --check --write './src/**/*.js,jsx,scss,md,json'",
    ,
   ...


.prettierrc JSON 文件

  "trailingComma": "es5",
  "tabWidth": 4,
  "semi": false,
  "singleQuote": true

.prettierignore 从格式化中忽略文件夹/文件
/config

# Dependency directories
node_modules/

# Publish Directory
build/

# Root level folders/files
/package.json

【讨论】:

【参考方案7】:

对我来说问题是我必须添加引号

在你的 package.json 中的某个地方

"format": "prettier --write \"src/**/*.ts\""

【讨论】:

对我来说,这个解决方案有效,但您可以使用单引号,这样您就不必转义它们。 也许你是对的

以上是关于如何告诉 prettier 递归解析文件?的主要内容,如果未能解决你的问题,请参考以下文章

更漂亮,eslint - classProperties 解析器插件错误

如何更改 .less 文件的 Prettier 行为?

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

如何在 Prettier 中使用具有多个扩展名的文件?

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

如何在VS Code中启用自动格式化.jsx文件的Prettier?