heyaikeedo/composer
最新稳定版本:v1.2.0
Composer 安装命令:
composer require heyaikeedo/composer
包简介
Aikeedo Composer plugin to register custom installer for Aikeedo plugins/themese etc.
README 文档
README
Aikeedo Composer plugin to register custom installer for Aikeedo plugins/themes.
Installation
composer require heyaikeedo/composer
Features
- Custom installer for
aikeedo-pluginandaikeedo-themepackage types - Automatic copying of public assets to the webroot
- Automatic cleanup of public assets on uninstall
- Support for glob patterns
Public Files Configuration
Aikeedo plugins can define public files/directories that should be copied to the webroot during installation. This is configured in the package's composer.json under extra.public.
Basic Syntax
{
"extra": {
"public": [
"path/to/file.js",
"path/to/directory",
{
"source": "source/path",
"target": "target/path"
}
]
}
}
Target Path Resolution (Model A)
The target path follows "Model A" where target is ALWAYS the final destination path:
| Target Format | Description | Result |
|---|---|---|
"file.js" |
Package dir + target | public/e/{vendor}/{pkg}/file.js |
"/file.js" |
Webroot + target | public/file.js |
"." |
Package dir + source basename | public/e/{vendor}/{pkg}/{basename} |
"/." or "/" |
Webroot + source basename | public/{basename} |
null (omitted) |
Package dir + source basename | public/e/{vendor}/{pkg}/{basename} |
"dir/*" |
Glob: contents copied to target | Contents copied to target directory |
Examples
1. Legacy String Format (preserves full path)
{
"extra": {
"public": ["widget/dist/index.html", "widget/dist/styles.css"]
}
}
Result:
widget/dist/index.html→public/e/{vendor}/{pkg}/widget/dist/index.htmlwidget/dist/styles.css→public/e/{vendor}/{pkg}/widget/dist/styles.css
2. Copy to Package Directory (no leading /)
{
"extra": {
"public": [
{
"source": "widget/dist/sdk.js",
"target": "sdk.js"
},
{
"source": "assets",
"target": "static"
}
]
}
}
Result:
widget/dist/sdk.js→public/e/{vendor}/{pkg}/sdk.jsassets/→public/e/{vendor}/{pkg}/static/
3. Copy to Webroot (leading /)
{
"extra": {
"public": [
{
"source": "widget/dist/sdk.js",
"target": "/sdk.js"
},
{
"source": "assets",
"target": "/static/assets"
}
]
}
}
Result:
widget/dist/sdk.js→public/sdk.jsassets/→public/static/assets/
4. Using Basename Shortcuts (. and /.)
{
"extra": {
"public": [
{
"source": "widget/dist",
"target": "."
},
{
"source": "widget/dist",
"target": "/."
},
{
"source": "widget/dist"
}
]
}
}
Result:
"."→public/e/{vendor}/{pkg}/dist/(package dir + basename)"/."→public/dist/(webroot + basename)- No target →
public/e/{vendor}/{pkg}/dist/(same as".")
5. Glob Patterns (copy contents)
{
"extra": {
"public": [
{
"source": "widget/dist/*",
"target": "/assets"
}
]
}
}
Result:
- Contents of
widget/dist/(e.g.,index.html,css/,js/) →public/assets/ - Files become
public/assets/index.html,public/assets/css/..., etc.
Environment Variables
| Variable | Description | Default |
|---|---|---|
PUBLIC_DIR |
Custom webroot path | public |
Package Types
This plugin handles the following package types:
aikeedo-plugin- Installed toextra/extensions/{vendor}/{package}aikeedo-theme- Installed toextra/extensions/{vendor}/{package}
License
See LICENSE file.
统计信息
- 总下载量: 4.96k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-02-22