weeshop/project-base

WeeShop 1.x 项目模板

安装: 414

依赖项: 0

建议者: 0

安全性: 0

星标: 2

关注者: 2

分支: 28

类型:项目

dev-8.x-1.x 2020-04-07 12:39 UTC

This package is auto-updated.

Last update: 2024-09-07 23:06:01 UTC


README

使用 Composer 来获取带有所有依赖项的 Drupal + Commerce 2.x。

基于 drupal-composer/drupal-project

用法

首先您需要 安装 composer

注意:以下说明针对的是 全局 composer 安装。您可能需要将 composer 替换为 php composer.phar(或类似)以适应您的设置。

之后,您可以创建项目

composer create-project drupalcommerce/project-base some-dir --stability dev --no-interaction

完成!使用 composer require ... 下载额外的模块和主题

cd some-dir
composer require "drupal/devel:1.x-dev"

composer create-project 命令会将所有文件的拥有权转让给创建的项目。您应该创建一个新的 git 仓库,并提交所有未被 .gitignore 文件排除的文件。

模板做什么?

  • Drupal 安装在 web 目录。
  • 模块(类型为 drupal-module 的包)放在 web/modules/contrib/
  • 主题(类型为 drupal-theme 的包)放在 web/themes/contrib/
  • 配置文件(类型为 drupal-profile 的包)放在 web/profiles/contrib/
  • 创建默认的可写版本的 settings.phpservices.yml
  • 创建 web/sites/default/files 目录。
  • 本地安装最新的 DrupalConsole,用于在 bin/drupal 下使用。

更新 Drupal 核心版本

此项目将尝试使所有 Drupal 核心文件保持最新;使用 drupal-composer/drupal-scaffold 项目确保在 drupal/core 更新时,您的支架文件也会更新。如果您自定义了任何“支架”文件(通常是 .htaccess),则在 Drupal 核心的新版本中更新您的修改文件时,您可能需要解决冲突。

按照以下步骤更新您的核心文件。

  1. 运行 composer update drupal/core webflo/drupal-core-require-dev "symfony/*" --with-dependencies 来更新 Drupal 核心和其依赖项。
  2. 运行 git diff 以确定是否有支架文件已更改。检查文件以确定任何更改,并将任何自定义修改恢复到 .htaccessrobots.txt
  3. 将所有内容作为一个单独的提交来提交,这样在检出分支或运行 git bisect 时,web 将与 core 保持同步。
  4. 如果在第 2 步中出现非平凡的冲突,您可能需要在分支上执行这些步骤,并使用 git merge 将更新的核心文件与您的自定义文件合并。使用 kdiff3 等三路合并工具可以方便地进行合并。如果您的更改很简单,则不需要此设置;将所有修改放在文件的开始或结束部分是保持合并容易的好策略。

从现有项目生成 composer.json

使用 “Composer Generate” drush 扩展,您现在可以从现有项目生成基本的 composer.json 文件。请注意,生成的 composer.json 可能与此项目的文件不同。

常见问题解答

我应该提交我下载的 contrib 模块吗?

Composer建议不要。他们提供了反对的理由,同时也提供了解决方案,如果项目决定无论如何都要这样做的话。

我应该提交脚手架文件吗?

drupal-scaffold插件可以将脚手架文件(如index.php、update.php等)下载到项目的web/目录。如果你没有自定义这些文件,可以选择不在版本控制系统(例如git)中检查它们。如果对于你的项目来说这种情况是适用的,那么在每次安装或更新项目后自动运行drupal-scaffold插件可能更方便。你可以通过在composer.json中注册@composer drupal:scaffold作为安装后和更新后的命令来实现这一点。

"scripts": {
    "drupal-scaffold": "DrupalComposer\\DrupalScaffold\\Plugin::scaffold",
    "post-install-cmd": [
        "@composer drupal:scaffold",
        "..."
    ],
    "post-update-cmd": [
        "@composer drupal:scaffold",
        "..."
    ]
},

如何应用下载的模块的补丁?

如果你需要应用补丁(根据要修改的项目,pull request通常是一个更好的解决方案),你可以使用composer-patches插件。

要将补丁添加到drupal模块foobar中,请将patches部分插入composer.json的extra部分。

"extra": {
    "patches": {
        "drupal/foobar": {
            "Patch description": "URL to patch"
        }
    }
}

我如何使用composer.json添加js/css库?

由于asset-packagist仓库(https://asset-packagist.org/),现在可以使用composer使用前端库。

例如,要使用colorbox

composer require npm-asset/colorbox:"^0.4"

Composer会检测符合你约束的库的新版本。在上面的例子中,它会下载0.4.*系列的colorbox。

以这种方式管理库时,你可能不希望将其添加到版本控制中。在这种情况下,将特定目录添加到.gitignore文件中。

# Specific libraries (which we manage with composer)
web/libraries/colorbox

有关更多详细信息,请参阅https://asset-packagist.org/site/about

如何指定PHP版本?

目前Drupal 8支持PHP 5.5.9作为最低版本(见Drupal 8 PHP要求),然而,有可能在执行composer update时升级某些包,从而需要PHP 7+。

为了防止这种情况,你可以在composer.json的config部分添加以下代码来指定你想要使用的PHP版本

"config": {
    "sort-packages": true,
    "platform": {"php": "5.5.9"}
},