grasmash / composerize-drupal
该包最新版本(1.3.0)没有可用的许可信息。
将非Composer管理的Drupal应用程序转换为Composer管理的应用程序。
1.3.0
2021-06-03 14:16 UTC
Requires
- php: >=5.6
- composer-plugin-api: ^2.0
- composer/semver: ^3
- symfony/finder: ^3.4
- symfony/yaml: ^3.4
- webflo/drupal-finder: ^1.1
- webmozart/path-util: ^2.3
Requires (Dev)
- alchemy/zippy: ^0.4.8
- composer/composer: ^2.0
- phpunit/phpunit: ^5.7
- satooshi/php-coveralls: ^2.0
- squizlabs/php_codesniffer: ^3.2
This package is auto-updated.
Last update: 2024-09-20 00:30:23 UTC
README
Composerize Drupal
Composerize Drupal 是一个Composer插件,它可以将非Composer管理的Drupal应用程序(例如,通过tarball创建的应用程序)转换为Composer管理的Drupal应用程序。
它不是用来创建新的Drupal应用程序的。如果您想创建一个全新的Drupal应用程序,请使用 drupal-project。
功能
composerize-drupal 命令将执行以下操作
- 移除所有遗留的
composer.json和composer.lock文件 - 在
[composer-root]目录中基于 template.composer.json 生成一个新的composer.json文件。- 使用
drupal/core-recommended和drupal/core-composer-scaffold填充require - 使用
require填充 [drupal-root]/modules中的每个项目的条目[drupal-root]/modules/contrib[drupal-root]/themes/contrib[drupal-root]/profiles/contrib
- 要求并配置建议的Composer插件
- 将
drupal/composer-scaffold文件路径添加到extra配置中,以确保Drupal项目下载到正确的位置。 - 创建并填充
extra.patches对象,以方便使用 Composer Patches 进行修补。将自动发现修补文件,并将其移动到新的 [repo-root]/patches 目录。 - 向
repositories添加条目https://packages.drupal.org/8用于从Drupal.org安装包https://asset-packagist.org/允许安装NPM包。
- 将
- 使用
- 创建或修改
[composer-root]/.gitignore,包含Composer管理的贡献项目的条目,按照 最佳实践。您可以在composer化后修改.gitignore,如果您不想遵循此做法。 - 执行
composer update以生成composer.lock、自动加载文件,并在正确的位置安装所有依赖项。
它将不会将 docroot/libraries 中的任何贡献项目添加到 composer.json。您必须手动将这些添加到您的 composer.json 文件中。除了 packagist 和 Drupal.org 包之外,您还可以使用来自 asset packagist 的任何包,这使得NPM包可用于Composer。
安装
composer global require grasmash/composerize-drupal
用法
cd path/to/drupal/project/repo
composer composerize-drupal --composer-root=[repo-root] --drupal-root=[drupal-root]
[composer-root] 应该是您的项目根目录,其中包含 .git。
[drupal-root] 应该是Drupal根目录,其中包含 index.php。
示例
# Drupal is located in a `docroot` subdirectory.
composer composerize-drupal --composer-root=. --drupal-root=./docroot
# Drupal is located in a `web` subdirectory.
composer composerize-drupal --composer-root=. --drupal-root=./web
# Drupal is located in a `public_html` subdirectory (cPanel compatible).
composer composerize-drupal --composer-root=. --drupal-root=./public_html
# Drupal is located in the repository root, not in a subdirectory.
composer composerize-drupal --composer-root=. --drupal-root=.
选项
--composer-root:指定生成composer.json的项目根目录。这应该是您的Git仓库的根目录,其中包含.git。--drupal-root:指定包含index.php的Drupal根目录。--no-update:防止在生成composer.json后自动运行composer update。--no-gitignore:防止修改根.gitignore文件。--exact-versions:这会导致Drupal核心和贡献项目(模块、主题、配置文件)在composer.json中使用精确版本约束,而不是使用默认的插入符号操作符。例如,一个drupal/core将被要求为8.4.4,而不是^8.4.4。这会阻止项目被更新。它不建议作为长期解决方案,但可以通过减少对项目变更的大小,帮助您更轻松地转换为使用Composer。