# yarn prettier --write .
# prettier --check .
// 编辑器不支持的时候,可以这么写,需要安装 onchange
// --ignore-unknown {{changed}} 不写 默认找 ./.prettierignore
"prettier-watch": "onchange \"**/*\"
-- prettier --write --ignore-unknown {{changed}}"
// If your editor does not support Prettier
prettier 风格格式化,只做了风格校验。 linter 不仅做了代码质量检查,避免潜在 bug,还做了风格校验。 但是 linter 也做了不少风格方面的校验,这和 prettier 产生了冲突,下面推荐的三个,就是为了解决冲突的。 推荐:
不推荐:
运行 linters ,顺便运行了 prettier
优点:运行 linters ,内部集成了 prettier ,
你不用额外搞基础建设(只需要你的编辑器集成了 linters 即可拥有 prettier 的特性!),
然后就可以运行 prettier --check .
,而且大多数编辑器都有了 prettier 的支持。
缺点:1,你将面临红线,很恼人,prettier 理念是让你忘记 formating 这件事,
而不是让你面对它。2,比直接运行 prettier 慢。3,它们仍然是一层间接的东西可能打破。
运行了 prettier,顺便运行了 linters 优点:可能有些 prettier 的结果不是你想要的结果,那么 eslint --fix 这样的操作可能对你来说就是有用的。 缺点:运行不如直接运行 prettier 快。
prettier 会将 editorconfig 中兼容的属性转换到 prettier config 文件中去
lint-stage, pretty-quick, pre-commit, git-format-staged, shell script 这 5 种方式, 原理都是用到了 git hooks 的 pre-commit hook 阶段,做了格式化。 pre-commit 是用 pre-commit 管理了 git hook 的 pre-commit 过程, shell script 是手动写 shell 脚本控制 git pre-commit hook。 lint-stage, pretty-quick, git-format-staged 都是用了 husky 来把自身注册到 git pre-comimt hook 中去,然后通过自身来管理 linter。
参考地址:https://prettier.io/docs/en/precommit.html
用到了 husky 和 lint-stage,或者自己写 node 脚本运行 lint-stage
用到了 husky 和 pretty-quick
不用 husky
用到了 husky
https://www.olioapps.com/blog/automatic-code-formatting/
不需要任何三方工具,手动改写 git hooks 文件
可能会存在的 bug,解决方法是在 post-commit hooks 中更新 git 的 index
需要掌握 git hooks 和 shell 知识
husky 和 pre-commit 是 git hooks 的管理工具之一,他俩有何异同呢
参考 .editorconfig 文件中的说明