drupal-composer/drupal-scaffold

此包已被弃用且不再维护。作者建议使用drupal/core-composer-scaffold包代替。

用于在通过Composer使用drupal/core时更新Drupal脚本的Composer插件

安装次数: 9,067,321

依赖者: 218

建议者: 0

安全: 0

星级: 192

关注者: 13

分支: 45

开放问题: 26

类型:composer-plugin

2.6.1 2019-03-30 10:41 UTC

README

Build Status

已弃用 - 不要使用

此项目已弃用。请使用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.phpupdate.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.jsonextra部分提供一些设置来配置插件。

{
  "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时,既不提供默认排除项也不提供默认包含项;在这种情况下,仅考虑显式列在excludesincludes选项中的文件。如果omit-defaultsfalse(默认值),则excludesincludes中列出的任何项目都将添加到通常的默认值。

配置文件initial列出应复制的文件,前提是它们在目标位置不存在。键指定源文件的路径,值指示目标文件的路径。

限制

当使用Composer安装或更新Drupal开发分支时,总是从分支的HEAD(或更具体地说,从最新的开发.tar.gz存档)获取脚手架文件。如果您使用的是旧的开发版本(例如,当版本通过composer.lock固定时),这可能不是您想要的。为了避免问题,每次在composer.lock提交时,总是将脚手架文件提交到仓库。请注意,使用drupal/core的标记版本(推荐)可以获取正确的脚手架文件。

自定义命令

插件默认情况下,仅在安装或更新drupal/core时下载脚手架文件。如果您想手动调用它,您必须将命令回调添加到根composer.jsonscripts部分,如下所示

{
  "scripts": {
    "drupal-scaffold": "DrupalComposer\\DrupalScaffold\\Plugin::scaffold"
  }
}

之后,您可以通过使用composer drupal:scaffold手动根据您的配置下载脚手架文件。

假设脚手架文件将被提交到仓库,以确保在CI服务器上使用正确的文件(参见上面的限制)。在第一次运行composer install之后,将脚手架文件提交到您的仓库。