grasmash/composerize-drupal

该包最新版本(1.3.0)没有可用的许可信息。

将非Composer管理的Drupal应用程序转换为Composer管理的应用程序。

安装次数: 19,077

依赖者: 1

建议者: 0

安全: 0

星标: 125

关注者: 8

分支: 20

开放问题: 9

类型:composer-plugin

1.3.0 2021-06-03 14:16 UTC

README

Build Status Coverage Status Packagist

Composerize Drupal

Composerize Drupal 是一个Composer插件,它可以将非Composer管理的Drupal应用程序(例如,通过tarball创建的应用程序)转换为Composer管理的Drupal应用程序。

它不是用来创建新的Drupal应用程序的。如果您想创建一个全新的Drupal应用程序,请使用 drupal-project

功能

composerize-drupal 命令将执行以下操作

  • 移除所有遗留的 composer.jsoncomposer.lock 文件
  • [composer-root] 目录中基于 template.composer.json 生成一个新的 composer.json 文件。
    • 使用 drupal/core-recommendeddrupal/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 添加条目
  • 创建或修改 [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。