我已经安装了 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
写道:
- github.com/drupal/core-project-messageComposer 安装过程完成后,此 Composer 插件会显示一条可配置消息。
- github.com/drupal/core-composer-scaffold该项目提供了一个 Composer 插件,用于将 drupal/core 项目中的脚手架文件(如 index.php、update.php 等)放置到 Web 根目录中所需的位置。只有单个文件可以使用此插件构建。
答案1
由于作曲家的工作方式,drupal/core-recommended
您在web/core
目录中看到的所有内容都是如此。
但是,要使 Drupal 正常工作,您的目录中需要有许多文件web
(例如robots.txt
、.htaccess
等index.php
)。这些文件是由scaffold
项目下载的(composer.json
如果您想省略一些,您甚至可以通过自定义,这对于与特定安装无关的内容非常有帮助。这些文件也应该在源代码管理中(查看.htaccess
和robots.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": [
]
}