nova-kit / nova-packages-tool
Laravel Nova 包开发工具
v1.17.1
2024-09-02 14:50 UTC
Requires
- php: ^7.3 || ^8.0
- laravel/nova: >=4.35.0 <4.36.0
Requires (Dev)
- nova-kit/nova-devtool: ^1.3
- orchestra/testbench: ^6.35 || ^7.29 || ^8.9 || ^9.0
- dev-develop / 2.x-dev
- 1.x-dev
- v1.17.1
- v1.17.0
- v1.16.1
- v1.16.0
- v1.15.0
- v1.14.7
- v1.14.6
- v1.14.5
- v1.14.4
- v1.14.3
- v1.14.2
- v1.14.1
- v1.14.0
- v1.13.3
- v1.13.2
- v1.13.1
- v1.13.0
- v1.12.1
- v1.12.0
- v1.11.2
- v1.11.1
- v1.11.0
- v1.10.0
- v1.9.3
- v1.9.2
- v1.9.1
- v1.9.0
- v1.8.0
- v1.7.1
- v1.7.0
- v1.6.4
- v1.6.3
- v1.6.2
- v1.6.1
- v1.6.0
- v1.5.4
- v1.5.3
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.0
- v1.3.4
- v1.3.3
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.1
- v1.2.0
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- dev-dependabot/npm_and_yarn/multi-d66d039ac5
- dev-next
This package is auto-updated.
Last update: 2024-09-17 10:51:52 UTC
README
此库为Laravel Nova第三方包提供版本化依赖管理。
为什么?
laravel-nova
可能时不时引入破坏性和非破坏性改进。为了保持兼容性,所有第三方包都应该在Laravel Nova发布新版本时重新构建它们的包。
通过跳过此过程并依赖变更的严重性,可能会导致您的应用程序无法正常工作,并且您被锁定在较旧版本上,必须等待每个受影响的第三方包更新其代码。
优点
nova-kit/nova-packages-tool
降低了使用laravel-nova
的每个第三方包的维护难度。- 生成的
dist
文件将减少,因为第三方包不再需要构建laravel-nova
源代码。
缺点
- 每次Laravel Nova发布新版本时,您需要等待
nova-kit/nova-packages-tool
发布兼容的新版本。
安装
要通过Composer安装,请在终端运行以下命令
composer require "nova-kit/nova-packages-tool:^1.0"
接下来,确保您的应用程序的composer.json
文件在script.post-autoload-dump
下包含以下命令
{ "script" : { "post-autoload-dump": [ "@php artisan vendor:publish --tag=laravel-assets --ansi --force" ] } }
用法
首先,您需要将webpack.external别名添加到laravel-nova
,并在nova.mix.js
下注释现有的对vendor/laravel/nova/resources/js/mixins/js/packages.js
的引用
webpackConfig.externals = { vue: 'Vue', 'laravel-nova': 'LaravelNova', 'laravel-nova-ui': 'LaravelNovaUi' } // webpackConfig.resolve.alias = { // ...(webpackConfig.resolve.alias || {}), // 'laravel-nova': path.join( // __dirname, // 'vendor/laravel/nova/resources/js/mixins/packages.js' // ), // }
这将允许您的包从外部源依赖laravel-nova
,而不再在本地编译它。
主题切换事件
现在,您可以通过监听单个nova-theme-switched
事件来替代在各个包上手动注册自定义MutationObserver
。
Nova.$on('nova-theme-switched', ({ theme, element }) => { if (theme === 'dark') { element.add('package-dark') } else { element.remove('package-dark') } })
夜间构建
对于那些迫不及待想要使用兼容版本的用户,您可以通过在Laravel Nova应用程序上运行以下命令来使用我们的夜间构建
composer require nova-kit/nova-packages-tool:"dev-next as 1.999.999"