在拉拉维尔(Laravel
#php #laravel #husky #duster

duster是Laravel的Code Linter&Fixer的一个很好的工具,用加强创建软件包的公司的话:

Takes the best of Laravel’s Pint, together with the power of PHP_CodeSniffer and PHP-CS-Fixer configured the Tighten way... Duster works on the command line, but you can also integrate it with Husky to run it automatically in response to local Git triggers, or use our premade GitHub Action to run it in your CI pipeline.

该软件包有一个很好的命令来设置GitHub操作,但是本地设置Husky更加棘手,在这篇文章中,我们将用Hiskky的预先承诺挂钩设置Duster来运行代码棉绒。

初始化GIT存储库

如果项目已经具有GIT存储库初始化,则应跳过此命令:

git init

安装沙哑的

npm i -D husky

安装绒毛阶段

npm i -D lint-staged

运行赫斯基初始命令

npx husky-init

它应该在package.json文件上添加一个新脚本,并使用键“准备”并执行它,这将添加一个新的.husky目录。

更新沙哑的预订

npx husky add ./.husky/pre-commit 'npx --no-install lint-staged'

您可以转到./husky/pre-commit文件并删除NPM测试行。

为所有 *.php文件配置绒毛阶段

通过添加本节来更新package.json文件:

    ...
    "lint-staged": {
        "**/*.php*": [
            "vendor/bin/duster lint"
        ]
    }
    ...

文件应该像这样:

{
    "private": true,
    "type": "module",
    "scripts": {
        "dev": "vite",
        "build": "vite build",
        "prepare": "husky install"
    },
    "devDependencies": {
        "axios": "^1.1.2",
        "laravel-vite-plugin": "^0.7.5",
        "vite": "^4.0.0",
        "husky": "^8.0.0"
    },
    "dependencies": {
        "husky": "^8.0.3",
        "lint-staged": "^13.2.3"
    },
    "lint-staged": {
        "**/*.php*": [
            "vendor/bin/duster lint"
        ]
    }
}

测试预加压钩

现在只添加文件并进行提交:

git add .
git commit "set duster & husky"

在这一点

Terminal output

提前选项

使用预加入挂钩自动修复代码

而不是运行棉绒,您可能希望自动修复代码,在这种情况下,通过更改命令来更新package.json文件:

    "lint-staged": {
        "**/*.php*": [
            "vendor/bin/duster fix"
        ]
    }

设置自定义配置

duster在幕后使用Laravel PintPHP_CodeSnifferPHP-CS-Fixer,您可以添加配置文件并根据自己的项目需要设置工具。

添加更多工具以使用Duster运行

后端工具

对于后端,您可以通过创建/更新duster.json文件来添加更多的工具,作为包装readme文件的示例,您可以添加phpstan:

{
    "scripts": {
        "lint": {
            "phpstan": ["./vendor/bin/phpstan", "analyse"]
        }
    },
    "processTimeout": 120
}

您可以在duster命令中使用flag --using在duster上运行它们的命令(lint/fix):./vendor/bin/duster lint --using="phpstan,tlint,pint"

前端工具

要运行棉绒技术,您可以使用lint-staged运行皮棉,在此示例中,它将添加eslint:

1-安装eslint

npx eslint --init

2-创建文件.lintstagedrc

touch .lintstagedrc

3-然后使用此内容更新文件:

{
  "*.(js|ts)" : ["eslint"]
}

希望加速您的代码棉布/修复工作流程会有所帮助,一如既往地感谢您的阅读和愉快的编码。