iqual / project-scaffold
交互式项目脚手架和初始化。
Requires
- php: >=7.3.0
- composer-plugin-api: ^2.0
- symfony/yaml: ^4.0 || ^5.0 || ^6.0 || ^7.0
- twig/twig: ^2.0 || ^3.0
Requires (Dev)
- composer/composer: ^2.0
README
此Composer插件提供了在项目中添加和更新项目脚手架文件的能力。
使用此插件可以管理composer项目中的脚手架文件。脚手架文件可以位于单独的composer包中,该包可以定义要添加、替换或合并到项目中的资源。当此类项目资源包交互式地添加到项目中时,包括在项目创建(使用composer create-project)和composer更新期间,用户将被提示填写变量,然后可以用于动态模板化脚手架资源。
插件背后的想法是,git提交的项目文件(例如.lando.yml、.devcontainer、.ddev、.env等)或仓库(例如README.md、.gitignore、.github/workflows等)可以使用composer进行管理。这允许集中管理和规范通用项目模板。虽然composer允许使用composer create-project从现有包创建新项目,但此插件增加了交互式引导的支持,包括模板化,并添加了更新现有项目的能力。
此插件深受Drupal的
drupal/core-composer-scaffold启发,借鉴了其中的一些代码,以更“通用”的方法解决脚手架问题。感谢该项目的贡献者。类似的方法还包括独立工具Phabalicious或Phint。
快速入门 🚀
在您的项目中使用composer要求项目脚手架插件,并允许插件。建议仅将插件作为开发依赖项要求。
composer require iqual/project-scaffold --dev
要管理项目脚手架,必须要求包含资源的(一个或多个)composer包。一旦插件被要求,用户将被提示(如果在交互式CLI中)回答由包定义的问题。然后,答案将被保存到根项目的composer.json中的extra.project-scaffold部分。一旦所有必要的变量都可用,资源将由项目脚手架插件根据资源包的assets定义进行管理。
有关如何创建项目资源包的指南,请参阅创建项目资源包。
功能 ⭐
- 为新项目搭建脚手架(即初始化或引导)
- 在项目创建或更新期间进行交互式提示
- 更新现有项目资源或composer项目
- 在单独的版本化包中管理项目资源
- 使用copmoser管理您的环境
- 添加、替换(包括删除)和合并资源
- 使用twig基于变量模板化资源
- 将项目变量保存到项目composer文件的
extra.project-scaffold中 - 使用composer自动化项目脚手架(例如,在您的CI中执行
composer update)
命令 ⚡
要初始化新项目(即始终提示包问题)请使用
composer project:init
要更新现有项目,再次提示包问题,并重新应用脚手架,请使用
composer project:update
要从所有资产包(重新)应用项目脚手架,请使用
composer project:scaffold