乐闻世界logo
搜索文章和话题

如何仅对要提交的文件运行 Prettier ?

4 个月前提问
3 个月前修改
浏览次数37

1个答案

1

要仅对要提交的文件(Git Staging Area中的文件)运行Prettier,您可以使用lint-staged库与husky库结合使用。lint-staged允许您运行脚本并将其仅限制在Git暂存的文件上,而husky则可以让您方便地在各种Git钩子上运行命令,比如pre-commit钩子。

下面是如何配置这一流程的步骤:

步骤 1:安装Prettier、husky和lint-staged

如果你尚未安装Prettier,在项目中安装Prettier:

sh
npm install --save-dev prettier

接着安装huskylint-staged

sh
npm install --save-dev husky lint-staged

步骤 2:配置package.json

package.json文件中添加huskylint-staged的配置。下面是一个基本示例:

json
{ // ...你的其他配置 "scripts": { // ...你的其他脚本 "prepare": "husky install" }, "lint-staged": { "*.{js,jsx,ts,tsx,json,css,scss,md}": [ "prettier --write" ] }, "husky": { "hooks": { "pre-commit": "lint-staged" } } }

在这个配置中:

  • lint-staged指定了一个匹配模式(在这里是一组文件扩展名),以及对这些文件要运行的命令(这里是prettier --write)。
  • huskypre-commit钩子被设置为在提交前运行lint-staged

步骤 3:激活husky

运行以下命令以设置Git钩子:

sh
npx husky install

当你运行git commit时,pre-commit钩子将被触发,并运行lint-staged,它将执行prettier --write命令来格式化所有暂存的文件。

注意

  • 当你第一次设置husky时,请确保执行npm run preparenpx husky install,以便创建必要的钩子脚本。
  • 如果你使用的是husky 5或更高版本,配置方式可能有所不同,请参考最新的husky文档

以上步骤应该能够帮助你只对Git暂存区中的文件运行Prettier,在提交之前自动格式化代码。

2024年6月29日 12:07 回复

你的答案