了解用于将 Drupal 9 升级到 Drupal 10 的 Composer 命令

了解用于将 Drupal 9 升级到 Drupal 10 的 Composer 命令

我已经安装了 Drupal 9 和composer create-project drupal/recommended-project.我想升级到 Drupal 10。

升级基于 Composer 的站点/概述没有解释要做什么,但我发现升级基于 Composer 的站点确实如此。

如果我理解正确的话,对于典型的(非开发)版本,例如我所拥有的(根据recommended-project),这是过程:

cd example.com
composer update
chmod 777 web/sites/default
chmod 666 web/sites/default/*settings.php
chmod 666 web/sites/default/*services.yml
composer require 'drupal/core-recommended:^10' 'drupal/core-composer-scaffold:^10' 'drupal/core-project-message:^10' --update-with-dependencies --no-update
composer update
drush updatedb
chmod 755 web/sites/default
chmod 644 web/sites/default/*settings.php
chmod 644 web/sites/default/*services.yml

我理解大多数代码,但不理解以下命令

composer require 'drupal/core-recommended:^10' 'drupal/core-composer-scaffold:^10' 'drupal/core-project-message:^10' --update-with-dependencies --no-update
composer update

这个命令有什么作用?它需要推荐的 Drupal 10 版本,到目前为止一切顺利,但是其他两个部分是什么,在这种情况下什么是“支架”和“消息”,这些是必要的吗?
在安装 Drupal 时,我不记得曾经遇到过这些术语。


我第一次发表类似的问题在 Drupal Answers Stack Exchange 中,但在那里反响不佳。
在评论区user:zsd写道:

答案1

由于作曲家的工作方式,drupal/core-recommended您在web/core目录中看到的所有内容都是如此。

但是,要使 Drupal 正常工作,您的目录中需要有许多文件web(例如robots.txt.htaccessindex.php)。这些文件是由scaffold项目下载的(composer.json如果您想省略一些,您甚至可以通过自定义,这对于与特定安装无关的内容非常有帮助。这些文件也应该在源代码管理中(查看.htaccessrobots.txt大多数情况下),这将违背将它们置于核心的目的。

        [..]
        "drupal-scaffold": {
            "file-mapping": {
                "[web-root]/.ht.router.php": false,
                "[web-root]/example.gitignore": false,
                "[web-root]/INSTALL.txt": false,
                "[web-root]/README.txt": false,
                "[web-root]/web.config": false,
                "[web-root]/README.md": false,
                "[web-root]/sites/README.txt": false,
                "[web-root]/modules/README.txt": false,
                "[web-root]/themes/README.txt": false,
                "[web-root]/sites/example.sites.php": false,
                "[web-root]/sites/example.settings.local.php": false,
                "[web-root]/sites/default/default.services.yml": false,
                "[web-root]/sites/default/default.settings.php": false
            },
            "locations": {
                "web-root": "web/"
            }
        },

message另一方面,该项目的需要相当少 - 它只是在控制台中进行作曲家操作后显示赞助/支持的横幅。不安装任何东西,但某些寻求赞助的项目需要。还可以通过自定义composer.json不发出任何内容:

       [..]
        "drupal-core-project-message": {
            "include-keys": [
            ],
            "post-create-project-cmd-message": [
            ]
        }

相关内容