首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将模块的composer.json中的需求合并到统一的composer.json中?

如何将模块的composer.json中的需求合并到统一的composer.json中?
EN

Drupal用户
提问于 2019-02-13 17:38:26
回答 1查看 223关注 0票数 1

我试图正确地使用composer来安装一个名为nikic/php-parser的库。

感谢克莱夫的有益评论,我现在明白了,当一个Drupal 7模块附带一个composer.json文件时,该文件应该被合并到一个统一的composer.json-file中,从那时起,事情将或多或少地自动处理。

在Composer Manager项目页面上的说明中也提到了事情应该是这样的:

Composer Manager允许每个贡献模块随它自己的composer.json文件一起发布,并列出特定于模块的需求。然后将所有找到的模块的需求合并到统一的composer.json文件中。这会导致在所有模块之间共享一个供应商/目录,从而防止代码重复和版本不匹配。我的重点。

我用来测试的Drupal站点是Drupal 7的新安装,组织起来的Drupal 7通常是在使用drush (drush si standard)安装它时组织起来的。

Composer Manager包包含具有以下要求的composer.json

代码语言:javascript
复制
"require": {
    "php": ">=5.3.0",
    "nikic/php-parser": "^4.2"
}

我将Drupal变量composer_manager_vendor_dir设置为sites/all/vendor,统一composer.json的composer目录设置为/sites/default/files/composer

合并后的composer.json当前包含:

代码语言:javascript
复制
{
  "require": {
    "symfony/yaml": ">=3.1",
    "php": ">=5.3.0"
  },
  "config": {
    "autoloader-suffix": "ComposerManager",
    "vendor-dir": "../../../all/vendor"
  },
  "prefer-stable": true
}

也就是说,它不包括对nikic/php-parser的要求。上述项目的说明似乎意味着它将以某种方式自动合并。在我的试验场还没有发生这种事。

听了克莱夫的另一个提示,我跑了:

代码语言:javascript
复制
drush composer-manager install

这导致:

代码语言:javascript
复制
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
  - Installing symfony/yaml (v3.1.0)
    Downloading: 100%         
Generating autoload files

也就是说,它完成了统一composer.json所需的更新。但是它没有注意到模块目录中的composer.json

试着:

代码语言:javascript
复制
drush composer-manager update

..。没有解决这个问题。

一定有很明显的事情我错过了。

如何将模块的composer.json中的需求合并到统一的composer.json中(除了将其拼接到“手工”中)?

EN

回答 1

Drupal用户

回答已采纳

发布于 2019-02-14 14:05:27

我想我已经搞清楚了。

这应该是自动发生的。如果使用Drupal 7下的drush启用了模块,则会启用该模块。如果使用其他方式启用模块,则可能不会发生这种情况。

如果根composer.json由于某种原因没有满足特定模块的要求,则使用drush禁用,然后再重新启用模块修复问题。例如:

代码语言:javascript
复制
drush dis composer_manager -y
drush en composer_manager -y

这似乎是所需的全部。

应该强调的是,这只适用于Drupal 7,Drupal 8是完全不同的野兽。

票数 0
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/276479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档