创 建独立插件
前言
简介
本向导中,我们将创建一个简单的插件,添加一个可以在表单中使用的新表单组件。这也意味着用户可以在他们的面板中使用它。
该插件的最终代码可以在此 https://github.com/awcodes/headings。
步骤 1:创建插件
首先,我们将使用入门指南中概述的步骤创建插件。
步骤 2:清洁代码
接下来,我们对插件代码进行清洁,移除不需要的模板代码。这看似很多,这是因为我们准备编写的是一个简单的插件,因此我们可以移除许多样板代码。
移除以下目录和文件:
binconfigdatabasesrc/Commandssrc/Facadesstubs
然后整理 composer.json 文件,移除不需要的选项。
"autoload": {
"psr-4": {
// 数据库工厂可以移除
"Awcodes\\Headings\\Database\\Factories\\": "database/factories/"
}
},
"extra": {
"laravel": {
// 可以删除 Facade
"aliases": {
"Headings": "Awcodes\\Headings\\Facades\\ClockWidget"
}
}
},
通常情况下,Filament 建议用户使用自定义 Filament 主题来渲染他们的插件样式,此处为了举例,让我们提供自己的样式表,它可以使用 Filament v3 引入的 x-load 新特性异步加载。因此,我们来更新 package.json 文件使之包含 cssnano、postcss、postcss-cli 和 postcss-nesting 以创建我们的样式表。
{
"private": true,
"scripts": {
"build": "postcss resources/css/index.css -o resources/dist/headings.css"
},
"devDependencies": {
"cssnano": "^6.0.1",
"postcss": "^8.4.27",
"postcss-cli": "^10.1.0",
"postcss-nesting": "^13.0.0"
}
}
然后安装依赖。
npm install
我们同时需要更新 postcss.config.js 文件来配置 postcss。
module.exports = {
plugins: [
require('postcss-nesting')(),
require('cssnano')({
preset: 'default',
}),
],
};
你也可以删除测试目录和文件,不过虽然本例中不会用到,我们还是暂时留下它们。我们强烈建议你为插件编写测试。