drupal-composer / drupal-scaffold
用于在通过Composer使用drupal/core时更新Drupal脚本的Composer插件
Requires
- php: ^5.5.9|>=7.0.8
- composer-plugin-api: ^1.0.0
- composer/semver: ^1.4
Requires (Dev)
- composer/composer: dev-master
- g1a/composer-test-scenarios: ^2.1.0
- phpunit/phpunit: ^6
- squizlabs/php_codesniffer: ^2.8
README
已弃用 - 不要使用
此项目已弃用。请使用drupal/core-composer-scaffold。
如果您仍然使用此插件是因为您正在使用Drupal 8.7.x或更早版本,请注意,您可以使用较旧版本的Drupal 8使用core-composer-scaffold。从drupal/recommended-project模板项目开始,然后在创建项目后锁定到drupal/core-recommended的较早版本。请注意,在回退到较旧版本的Drupal核心时,通常更容易首先删除composer.lock和vendor。
旧README内容如下
当通过Composer使用drupal/core
时,自动下载Drupal脚本的Composer插件(如index.php
、update.php
等)。
建议将供应商目录放置在项目根目录的标准位置,位于Drupal根目录之外;然而,供应商目录的位置和Drupal根目录的名称可以根据项目的需要放置在任何位置。Drupal-scaffold将在Drupal根目录生成autoload.php文件,以要求供应商目录中由Composer生成的autoload文件。
用法
在安装或更新drupal/core
之前,在您的composer项目中运行composer require drupal-composer/drupal-scaffold:dev-master
。
一旦您的项目需要drupal-scaffold,它将在composer update
更改已安装的drupal/core
版本时自动更新您的脚本文件。
配置
您可以通过在根composer.json
的extra
部分提供一些设置来配置插件。
{ "extra": { "drupal-scaffold": { "source": "https://git.drupalcode.org/project/drupal/raw/{version}/{path}", "excludes": [ "google123.html", "robots.txt" ], "includes": [ "sites/default/example.settings.my.php" ], "initial": { "sites/default/default.services.yml": "sites/default/services.yml", "sites/default/default.settings.php": "sites/default/settings.php" }, "omit-defaults": false } } }
可以使用source
选项来指定下载脚本的URL;默认源是drupal.org。在source
选项中的字面字符串{version}
将在下载之前替换为正在更新的Drupal核心的当前版本。您还可以将source
定义为数组,以便在出现任何HTTP问题时提供回退。
{ "extra": { "drupal-scaffold": { "source": [ "https://git.drupalcode.org/project/drupal/raw/{version}/{path}", "https://raw.githubusercontent.com/drupal/drupal/{version}/{path}" ] } } }
使用drupal-scaffold
选项的excludes
,您可以提供不应复制或覆盖的额外路径。默认情况下,插件不提供任何排除项。
插件提供默认包含项
.csslintrc
.editorconfig
.eslintignore
.eslintrc (Drupal <= 8.2.x)
.eslintrc.json (Drupal >= 8.3.x)
.gitattributes
.ht.router.php (Drupal >= 8.5.x)
.htaccess
index.php
robots.txt
sites/default/default.settings.php
sites/default/default.services.yml
sites/development.services.yml
sites/example.settings.local.php
sites/example.sites.php
update.php
web.config
当将omit-defaults
设置为true
时,既不提供默认排除项也不提供默认包含项;在这种情况下,仅考虑显式列在excludes
和includes
选项中的文件。如果omit-defaults
为false
(默认值),则excludes
或includes
中列出的任何项目都将添加到通常的默认值。
配置文件initial
列出应复制的文件,前提是它们在目标位置不存在。键指定源文件的路径,值指示目标文件的路径。
限制
当使用Composer安装或更新Drupal开发分支时,总是从分支的HEAD(或更具体地说,从最新的开发.tar.gz存档)获取脚手架文件。如果您使用的是旧的开发版本(例如,当版本通过composer.lock固定时),这可能不是您想要的。为了避免问题,每次在composer.lock提交时,总是将脚手架文件提交到仓库。请注意,使用drupal/core
的标记版本(推荐)可以获取正确的脚手架文件。
自定义命令
插件默认情况下,仅在安装或更新drupal/core
时下载脚手架文件。如果您想手动调用它,您必须将命令回调添加到根composer.json
的scripts
部分,如下所示
{ "scripts": { "drupal-scaffold": "DrupalComposer\\DrupalScaffold\\Plugin::scaffold" } }
之后,您可以通过使用composer drupal:scaffold
手动根据您的配置下载脚手架文件。
假设脚手架文件将被提交到仓库,以确保在CI服务器上使用正确的文件(参见上面的限制)。在第一次运行composer install
之后,将脚手架文件提交到您的仓库。