我如何告诉 prettier 递归地解析文件?
How can I tell prettier to parse files recursively?
我想请 prettier 递归解析我的 JavaScript 文件,而不是指定它应该检查文件的每个文件夹。
我想做这样的事情:
prettier --write "all_js_files_except_node_modules_folder"
我在他们的文档中找不到太多东西。有什么建议吗?
谢谢,
保罗
几周前的 This issue 似乎回答了您的问题。长话短说:
prettier "{,!(node_modules)/**/}*.js"
如果你像我一样,你没有意识到目标文件使用了 globs 格式。
您可以阅读更多相关信息here. (Check the explanation about special chars). If you want to learn much more check here: http://tldp.org/LDP/abs/html/globbingref.html
我的文件夹结构:
components/
pages/
node_modules/
package.json
server.js
我想忽略 package.json
和 node_modules/
。我用这个命令解决了我的需求:
prettier --write "{*.js,!(node*)**/*.js}"`
{}
是一种扩展机制,它允许我使用多个过滤条件。在我的例子中有 2:
1: *.js
: 目标执行命令的根目录下的所有JS文件
2:!(node*)**/*.js
:针对所有文件夹和子文件夹下的所有JS文件(递归部分是使用**
得到的)
对于需要简单示例(无括号、or
s 等)的剪切和粘贴,这可能是一个有用的 glob 示例:
prettier --write "app/**/*.ts"
美化 app
目录及以下目录中的每个 *.ts
文件。
这个解决方案最适合我。这是我发现的唯一一种方法,无论它是如何嵌套的,它都会命中每个文件:
package.json
"scripts": {
"format": "prettier --write {,*/**/}*.{js,jsx,json}",
},
.prettierignore
node_modules
build
就运行prettier --write .
并使用 .prettierignore
文件告诉它要忽略什么,但默认情况下它会忽略 node_modules
。
添加为 npm 脚本对我有用:
- package.json 定义 npm 脚本
它将递归修复以下文件。ext 使用 prettierrc
文件中定义的以下规则集。
重要:. 例如'./src/**/*.{js,jsx,scss,md,json}'(包括所有文件和文件夹)
- 不要错过 quotes -> ' 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 从格式化中忽略 folder/files
/config
# Dependency directories
node_modules/
# Publish Directory
build/
# Root level folders/files
/package.json
我的问题是我必须添加引号
在你的某处 package.json
"format": "prettier --write \"src/**/*.ts\""
我想请 prettier 递归解析我的 JavaScript 文件,而不是指定它应该检查文件的每个文件夹。
我想做这样的事情:
prettier --write "all_js_files_except_node_modules_folder"
我在他们的文档中找不到太多东西。有什么建议吗?
谢谢, 保罗
This issue 似乎回答了您的问题。长话短说:
prettier "{,!(node_modules)/**/}*.js"
如果你像我一样,你没有意识到目标文件使用了 globs 格式。
您可以阅读更多相关信息here. (Check the explanation about special chars). If you want to learn much more check here: http://tldp.org/LDP/abs/html/globbingref.html
我的文件夹结构:
components/
pages/
node_modules/
package.json
server.js
我想忽略 package.json
和 node_modules/
。我用这个命令解决了我的需求:
prettier --write "{*.js,!(node*)**/*.js}"`
{}
是一种扩展机制,它允许我使用多个过滤条件。在我的例子中有 2:
1: *.js
: 目标执行命令的根目录下的所有JS文件
2:!(node*)**/*.js
:针对所有文件夹和子文件夹下的所有JS文件(递归部分是使用**
得到的)
对于需要简单示例(无括号、or
s 等)的剪切和粘贴,这可能是一个有用的 glob 示例:
prettier --write "app/**/*.ts"
美化 app
目录及以下目录中的每个 *.ts
文件。
这个解决方案最适合我。这是我发现的唯一一种方法,无论它是如何嵌套的,它都会命中每个文件:
package.json
"scripts": {
"format": "prettier --write {,*/**/}*.{js,jsx,json}",
},
.prettierignore
node_modules
build
就运行prettier --write .
并使用 .prettierignore
文件告诉它要忽略什么,但默认情况下它会忽略 node_modules
。
添加为 npm 脚本对我有用:
- package.json 定义 npm 脚本
它将递归修复以下文件。ext 使用 prettierrc
文件中定义的以下规则集。
重要:.
- 不要错过 quotes -> ' 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 从格式化中忽略 folder/files
/config
# Dependency directories
node_modules/
# Publish Directory
build/
# Root level folders/files
/package.json
我的问题是我必须添加引号
在你的某处 package.json
"format": "prettier --write \"src/**/*.ts\""