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。