如何使用Composer在Drupal 8中安装不在包装上的第三方库?

时间:2017-03-30 14:50:30

标签: git drupal composer-php drupal-8

在Drupal 8中安装不在packagist上的第三方库的最佳方法是什么?

例如,我有Color Field module,可以使用jQuery Simple Color Picker library来提供更好的用户体验。

最明显的解决方案是手动添加库,但这不是真正可维护的。

我的第二个想法是将git存储库添加到我的composer.json中,如下所示,但它不起作用,因为目标存储库没有composer.json文件。

"repositories": [
    {
        "name": "jquery-simple-color",
        "type": "git",
        "url": "https://github.com/recurser/jquery-simple-color.git"
    }
],
"require": {
    "jquery-simple-color/": "1.2.1"
}

我应该只是分叉git存储库并在那里添加composer.json文件吗?

4 个答案:

答案 0 :(得分:7)

你是在正确的轨道上,在你的composer.json中你可以制作自己的“包” 例如:

"repositories": [
  {
    "type": "package",
    "package": {
      "name": "jquery/simplecolor",
      "version": "1.2.1",
      "dist": {
        "url": "https://github.com/recurser/jquery-simple-color/archive/v1.2.1.zip",
        "type": "zip"
      },
      "type": "drupal-library"
    }
  }
]

然后将其包括在内

  "jquery/simplecolor": "1.2.1,

答案 1 :(得分:1)

最后一个提示:在“repositories”中使用“simplecolor”会导致创建一个名为libraries/simplecolor 的文件夹,这不是Drupal 所期待的。 由于文件夹需要是libraries/jquery-simple-color,所以添加起来更简单:

"repositories": [ {
"type": "package",
"package": {
  "name": "jquery/jquery-simple-color",
  "version": "1.2.1",

并使用: 作曲家需要 jquery/jquery-simple-color

答案 2 :(得分:0)

这是一个非常简单的补丁,但需要在repo之外的一些进程才能实现。

我创建了一个示例演练,即使用日光浴solr库。

以下是我遵循的步骤:

  • 创建了一个只包含drupal composer.json文件的github仓库
  • 使用github repo作为其来源在packagist.com https://packagist.org/packages/drupal/drupal上创建了一个新包
  • 将/ core / vendor中的引用移至/ vendor
  • 在项目的根目录中添加了一个新的composer.json
  • 将drupal / drupal添加为依赖
  • 添加了一个新的外部库日光浴室/日光浴室作为示例
  • 从项目目录中安装作曲家 这是发生的事情: -Composer找到drupal / drupal项目并将所有Drupal的依赖项下载到/ vendor
  • 它还将日光浴下载到/ vendor

我安装了Drupal 8并运行了一些测试而没有问题。

我发布了一个不应该测试的补丁,但是要知道我在说什么。

答案 3 :(得分:0)

接受的答案是正确的。但是,我刚刚遇到了一个用于该目的的工具:https://asset-packagist.org/。不必为每个库指定单独的存储库源,而只需另外指定一个:

" foo ".strip()

这将使您可以根据需要使用库。

"repositories": [
    { . . . },
    {
        "type": "composer",
        "url": "https://asset-packagist.org"
    }
]
  

注意:请注意上面的路径:它们不是按用户路径,而是按类型。

对于Drupal项目,您应该指定新可用的安装程序类型,并将每种类型都下载到Drupal "require": { "bower-asset/bootstrap": "^3.3", "npm-asset/jquery": "^2.2" } 目录:

libraries

此外,在必要时,如"extra": { "installer-types": [ "component", "bower-asset", "npm-asset" ], "installer-paths": { "web/libraries": [ "type:drupal-library", "type:component", "type:bower-asset", "type:npm-asset" ], } } 模块一样,您可以指定每个项目的库路径。您可以告诉它按照Drupal模块的要求下载到colorbox,而不是将其下载为libraries/jquery-colorbox,如其文档中所述。

  

对于Drupal 8.x:下载Colorbox插件并解压缩/ libraries(在您网站的根目录)。确保插件文件的路径变为:“ / libraries / colorbox / jquery.colorbox-min.js”。

方法如下:

  

注意:自定义的每个项目的库路径是在通用资产类型库路径之前指定的-首先适用,首先使用。

libraries/colorbox
  

来源:Hawkeye“ Derek DeRaps”嫩狼

     

https://drupal.tv/external-video/2018-07-15/how-using-drupal-project-composer-craft-your-perfect-start-state