lform/pretty-code

Lform的中心化管理代码样式和linting配置

安装: 31

依赖项: 0

建议者: 0

安全: 0

星星: 0

观察者: 1

分支: 0

开放性问题: 1

语言:Shell

类型:packages

1.1.3 2024-06-11 18:10 UTC

This package is auto-updated.

Last update: 2024-10-02 18:12:27 UTC


README

Pretty Code 是一个由githook驱动的PHP、CSS、HTML和JavaScript的lint器和格式化配置集合。它也适用于每个项目的自定义,这对于处理旧代码库、非常规或问题代码库非常有用。

当这个包更新时,运行 composer updatenpm update 将拉取最新的配置更改,除了你在项目中覆盖的任何内容。这允许你轻松更新配置,而无需手动更新文件。

目录

  1. 要求
  2. 安装
  3. 初始化
  4. 命令
  5. 每个项目的自定义

要求

  • 环境:OSX、Linux、WSL
  • PHP 7.4+
  • Node 20+

安装

重要:必须安装此包的NPM部分才能使用由githook驱动的lint器和格式化器。即使你使用Composer包也是如此。

此包设计用于在Linux和OSX环境中工作。目前不支持Windows。

NPM安装

这将安装包的前端部分以及由githook驱动的自动化。

npm install --save-dev @lform/pretty-code

Composer安装

这将安装包的PHP部分。

composer require --dev lform/pretty-code

Laravel & PHPStan

对于基于Laravel的项目,安装Larastan,这将配置PHPStan以在Laravel项目中使用。

安装Larastan

  1. 通过Composer安装Larastan(请参阅文档)

  2. 在项目根目录中创建一个 phpstan.neon 文件或从 pretty-code 中复制一个

  3. 编辑 .lintstagedrc.json 文件,并从 phpstan 中删除预设配置路径,以便它默认使用项目根目录配置。

  4. 将项目根目录中的 phpstan.neon 文件中的larastan扩展添加到

    includes: - vendor/larastan/larastan/extension.neon

初始化

一旦安装了这些包,就必须通过 npm 初始化该包以执行一些操作

  1. 如果尚不存在,将 .lintstagedrc.json 配置复制到项目根目录
  2. 将预先配置的 .githooks 目录复制到项目根目录以触发git自动化。如果目录已存在,初始化脚本将不会覆盖它。
  3. 如果尚不存在,将 .editorconfig 配置复制到项目根目录
  4. 将项目git仓库的 core.hooksPath 配置为使用新的 .githooks 目录。
  5. package.json 中添加新脚本来手动运行lint器和格式化器。

对于Composer,初始化将仅将新脚本添加到 composer.json 以手动运行lint器和格式化器。

之后,一旦确认一切正常工作,应将这些新文件和更改提交到git。请参阅以下内容以了解如何初始化包。

NPM初始化

npx pretty-code init

Composer初始化

vendor/bin/pretty-code init

故障排除

PHPStan问题

PHPStan非常有帮助,但可能在具有旧代码库或使用非常规方法的项目的源中引起烦恼。可以采取一些措施来解决这些问题

  1. 如果是Laravel项目,请安装Larastan(说明如上所述)
  2. 在配置中排除文件报告或在行内注释中报告。对于应忽略的错误,请将其添加到配置中。
  3. 在配置中降低报告级别
  4. 生成基线报告,这样你就可以专注于新代码,而不是试图修复旧代码。将基线报告提交到项目仓库。

如果其他方法都失败,可以禁用PHPStan,但除非必要,否则应尽量避免。

断开和重新连接自动化

如果您在使用自动化的git钩子时遇到问题,需要禁用或重新启用它们

# Disable automations, set the git hooks to the default:
git config core.hooksPath ".git/hooks"

# Re-enable automations, set the git hooks to our custom hooks directory:
git config core.hooksPath ".githooks"

操作系统问题

注意:在OSX上,您可能还需要安装coreutils,因为初始化脚本使用了realpath命令。如果看到与此相关的错误,请运行以下命令

brew install coreutils

卸载

要删除该包

  1. 从项目根目录删除任何自定义的代码检查器或格式化程序配置
  2. 删除.githooks目录
  3. 运行git config core.hooksPath .git/hooks
  4. 运行npm remove @lform/pretty-code
  5. 运行composer remove lform/pretty-code
  6. composer.jsonpackage.json中移除pretty脚本

代码检查器和格式化程序

代码检查器

格式化程序

  • PHP CS Fixer
    • 配置为PHP 8.3,对于7.4的支持,请将配置文件复制到您的项目中并自定义它。
  • Prettier

支持的文件类型

L = 检查,F = 格式化

  • antlers.html (F)
  • antlers.php (F)
  • blade.php (F)
  • css (LF)-
  • html, htm (LF)
  • js (LF)
  • jsx (LF)
  • json (F)
  • pcss (LF)
  • php (LF)
  • scss (LF)
  • ts (LF)
  • tsx (LF)
  • twig (F)
  • yaml, yml (LF)

命令

格式化程序

# Runs Prettier (css, scss, pcss, js, jsx, ts, tsx, json, html, htm, twig, blade.php, yml, yaml)
npm run pretty:format <path>

# Runs PHP-CS-Fixer (php)
composer pretty:format <path>

代码检查器

# Runs StyleLint (css, scss, pcss)
npm run pretty:lint:css <path>

# Runs ESLint (js, jsx, ts, tsx, json)
npm run pretty:lint:js <path>

# Runs linthtml (html, htm)
npm run pretty:lint:html <path>

# Runs PHPStan (php)
composer pretty:lint <path>

按项目定制

为了按项目定制代码检查器和格式化程序

  1. 将需要修改的特定配置文件从Pretty Code包根目录复制到项目根目录。只复制您需要的配置,这些自定义配置将不会通过包管理系统进行更新。
  2. 根据需要修改复制的配置文件。
  3. 打开.lintstagedrc.json文件,并从正在调整的代码检查器或格式化程序中移除显式配置文件路径或忽略文件路径。
  4. 对于适用的package.jsoncomposer.json脚本,做同样的事情。
  5. 基于项目的配置的代码检查器和格式化程序将自动使用项目根目录中的配置文件。

要撤销这些更改,只需删除配置并使用包的package.jsoncomposer.json文件恢复原始脚本。

配置文件

  • .eslintrc.json
  • .eslintignore(如有适用)
  • .linthtmlrc.json
  • .prettierrc.json
  • .prettierignore
  • .stylelint.json
  • .stylelintignore
  • phpstan.neon

待办事项

  1. 添加github工作流
  2. 添加tailwind代码检查器
  3. 添加antlers格式化程序和代码检查器
  4. 添加Windows支持(将bin脚本转换为node.js)