weeshop / project-base
WeeShop 1.x 项目模板
Requires
- php: >=7.0.8
- ext-curl: *
- composer/installers: ^1.2
- cweagans/composer-patches: ^1.6.5
- drupal-composer/drupal-scaffold: ^2.5
- drupal/console: ^1.0.2
- drupal/core: ^8.7.0
- drupal/devel_entity_updates: ^1.0
- drupal/search_api: ^1.0
- drupal/swiftmailer: ^1.0
- drupal/token: ^1.0
- drush/drush: ^10.0
- oomphinc/composer-installers-extender: ^1.1
- webflo/drupal-finder: ^1.0.0
- webmozart/path-util: ^2.3
- wikimedia/composer-merge-plugin: ^1.4
- zaporylie/composer-drupal-optimizations: ^1.0
Requires (Dev)
- webflo/drupal-core-require-dev: ^8.7.0
Conflicts
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.php
和services.yml
。 - 创建
web/sites/default/files
目录。 - 本地安装最新的 DrupalConsole,用于在
bin/drupal
下使用。
更新 Drupal 核心版本
此项目将尝试使所有 Drupal 核心文件保持最新;使用 drupal-composer/drupal-scaffold 项目确保在 drupal/core 更新时,您的支架文件也会更新。如果您自定义了任何“支架”文件(通常是 .htaccess),则在 Drupal 核心的新版本中更新您的修改文件时,您可能需要解决冲突。
按照以下步骤更新您的核心文件。
- 运行
composer update drupal/core webflo/drupal-core-require-dev "symfony/*" --with-dependencies
来更新 Drupal 核心和其依赖项。 - 运行
git diff
以确定是否有支架文件已更改。检查文件以确定任何更改,并将任何自定义修改恢复到.htaccess
或robots.txt
。 - 将所有内容作为一个单独的提交来提交,这样在检出分支或运行
git bisect
时,web
将与core
保持同步。 - 如果在第 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"} },