laravelrotebal/nova-patches

此包最新版本(0.3.0)没有提供许可证信息。

一组修复错误和改进Laravel Nova功能的补丁。

0.3.0 2020-06-29 16:10 UTC

This package is auto-updated.

Last update: 2024-08-29 05:24:10 UTC


README

一组修复错误和改进Laravel Nova功能的补丁。

目前开发中,与Nova 2.9.3兼容且经过测试。

安装

您可以通过composer将此包安装到使用Nova的Laravel应用中

composer require laravelrotebal/nova-patches

所有补丁将自动应用!

为什么需要此包?

  • 核心错误修复。
  • 核心功能改进。
  • 核心代码错误纠正。
  • 更灵活的核心代码,以实现最佳实践。

待办事项

  • 手动选择要应用的补丁。
  • 自动重建和发布前端资源。
  • 或者找到一种方法来为前端编译资源创建补丁。
  • 为测试修复后的功能创建测试。
  • 兼容Nova的其他版本。
  • 补丁命名统一。

依赖于包vaimo/composer-patches

将本地或远程文件中的补丁应用到给定composer项目中的任何包。补丁可以在项目和包级别定义。可选支持补丁版本控制、排序、自定义补丁应用配置和用于测试/故障排除的composer命令。

工作原理

目录patches/laravel/nova包含补丁文件。一个补丁文件对应一个错误修复或功能改进。

composer.json中的$.extra.patches.laravel/nova部分包含按指定顺序要应用的补丁文件。

运行installrequireupdatepatch:redopatch:undo命令后,指定的补丁将被应用到vendor目录中指定的包。

某些补丁可能会修改前端源文件。这需要手动开始资源组装以及可能发布它们。

补丁列表

refactoring-reformat-fields-js.patch

更改格式以简化补丁的应用。

受影响的文件

  • resources/js/fields.js

需要重建前端:否

has-many-index-template.patch

HasManyField可以在索引中显示。

受影响的文件

  • resources/js/components/Index/HasManyField.vue
  • resources/js/fields.js
  • src/Fields/HasMany.php

需要重建前端:是

has-one-index-template.patch

HasOneField可以在索引中显示。

受影响的文件

  • resources/js/components/Index/HasOneField.vue
  • resources/js/fields.js
  • src/Fields/HasOne.php

需要重建前端:是

action-event-cli-compatible.patch

forAttachedResource()、forAttachedResourceUpdate()的ActionEvent与NovaRequest无关。

受影响的文件

  • src/Http/Controllers/AttachedResourceUpdateController.php
  • src/Http/Controllers/PivotFieldDestroyController.php
  • src/Http/Controllers/ResourceAttachController.php
  • src/Actions/ActionEvent.php

需要重建前端:否

fix-resource-detach.patch

ActionEvent::forResourceDetach()可以执行批量分离。

受影响的文件

  • src/Actions/ActionEvent.php
  • src/Http/Controllers/ResourceDetachController.php

需要重建前端:否

action-event-create-without-duplicates.patch

ActionEvent::forResourceCreate()不会重复创建事件。

受影响的文件

  • src/Actions/ActionEvent.php

需要重建前端:否

如何重建前端

转到laravel/nova目录并执行

npm i && cp webpack.mix.js.dist webpack.mix.js && npm run prod

例如,我有一个38秒的重建过程。这太久了!

重建成功后,请务必运行

php artisan nova:publish