使用 Composer 和 Drupal 应用补丁的问题

尤里尔·尼古拉斯

由于我不够彻底,需要一些澄清。

我有贡献模块 Lazyloader。

这个补丁创建了我们不喜欢的随机 SVG 图像。所以我们想更新代码并创建一个灰色 SVG 占位符图像。使用补丁中的代码我做了一些更新,我想基本上做到以下几点:

安装懒加载

当我应用自制补丁时,会创建 3 个新目录,但这不应该发生:

  • 模块/contrib/lazyloader/b/
  • 模块/contrib/lazyloader/contrib/
  • 模块/贡献/延迟加载器/模块/

该模块已经安装在 modules/contrib/lazyloader 下,应该创建的唯一目录是 modules/contrib/lazyloader/css 和文件名.css

我没有尝试任何前缀(如果我使用这个就不能应用补丁)

git diff --staged > name.patchhttps://www.drupal.org/project/lazyloader/issues/2905310

我应用补丁...

lando composer update drupal/lazyload

...但它创建了一个我没有包含在补丁中的新目录。

我发现了这个问题,但我不确定这是否会影响我的问题。

我相信这是补丁级别和cweagans/composer-patches.

这是我的补丁

diff --git a/modules/contrib/lazyloader/css/grey_svg.css b/modules/contrib/lazyloader/css/grey_svg.css
new file mode 100644
index 000000000..573a3bb74
--- /dev/null
+++ b/modules/contrib/lazyloader/css/grey_svg.css
@@ -0,0 +1,3 @@
+.lazyload {
+  background-color: lightgrey;
+}
diff --git a/modules/contrib/lazyloader/lazyloader.libraries.yml b/modules/contrib/lazyloader/lazyloader.libraries.yml
index 99e023f00..ef4d1c6ff 100644
--- a/modules/contrib/lazyloader/lazyloader.libraries.yml
+++ b/modules/contrib/lazyloader/lazyloader.libraries.yml
@@ -15,3 +15,8 @@ lazysizes-min.cdn:
     gpl-compatible: true
   js:
     https://cdnjs.cloudflare.com/ajax/libs/lazysizes/2.0.0/lazysizes.min.js: { type: external, minified: true }
+
+udesa-grey-svg:
+  css:
+    theme:
+      css/grey_svg.css: {}
diff --git a/modules/contrib/lazyloader/lazyloader.module b/modules/contrib/lazyloader/lazyloader.module
index 24998ed18..dc872356f 100644
--- a/modules/contrib/lazyloader/lazyloader.module
+++ b/modules/contrib/lazyloader/lazyloader.module
@@ -118,3 +118,10 @@ function lazyloader_libraries_info() {

   return $libraries;
 }
+
+/**
+ * Implements hook_libraries_info().
+ */
+function lazyloader_page_attachments(array &$page) {
+  $page['#attached']['library'][] = 'lazyloader/udesa-grey-svg';
+}

这也是我的 composer.json 补丁

    "drupal/lazyloader": {
        "Provide option to use a image style as the placeholder image": "https://www.drupal.org/files/issues/2018-11-29/lazyloader-LQIP-2905310-6.patch",
        "Create black SVG as placeholder image": "patches/lazyloader/lazyloader-create-black-svg.patch"
    }

补丁名称不是问题,我一直在玩弄其中几个

解决方案 > 解决方案说明了什么

1- 安装带有 --prefer source 和我想要的来自 drupal.org 的补丁的模块 2- 进入 modules/contrib/lazyloader 3- 我在分离的 head 分支中进行了补丁中的更改 4- 进行了我自己的更改,因为我需要来自 drupal.org 的第一个补丁 5-根据我的更改创建了我自己的补丁

完美运行!

山姆711

您的补丁应该是模块 git repo 的本地补丁。路径必须看起来像这样:

diff --git a/lazyloader/css/grey_svg.css b/lazyloader/css/grey_svg.css

代替:

diff --git a/modules/contrib/lazyloader/css/grey_svg.css b/modules/contrib/lazyloader/css/grey_svg.css

contrib 模块的路径取自您的 composer.json (drupal/lazyloader)

确保您使用 contrib 模块 git repo 来创建补丁(不是 drupal 核心)。https://www.drupal.org/node/707484

从头开始,这个过程应该是这样的:

  1. 从您的项目根文件夹,使用 composer 从源安装lazyloader:
composer require 'drupal/lazyloader:^1.0' --prefer-source
  1. 使用您喜欢的 IDE 对代码进行更改。
  2. 创建补丁:
cd web/modules/contrib/lazyloader
git diff --staged > name.patch
mv name.patch ../../../../patches/lazyloader/lazyloader-create-black-svg.patch
  1. 你的 composer.json 看起来不错。下次您运行 composer install 或 composer update 时,您的补丁将被安装。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Hyperledger Composer 0.15 和 Web 应用程序 - 卡片的使用

来自分类Dev

linux使用/应用补丁和与帅哥有关的混乱

来自分类Dev

使用 Composer 和 Symfony 进行故障排除

来自分类Dev

使用带有npm,bundler和composer的Grunt的Web应用程序的理想项目目录结构

来自分类Dev

使用 Composer 为 Drupal 8 模块安装 RC1 版本

来自分类Dev

如何在我的网站中同时使用Laravel和Drupal?

来自分类Dev

Drupal 8:使用XDebug和PHPStorm调试测试-逐步完成

来自分类Dev

Drupal 8:使用XDebug和PHPStorm调试测试-逐步完成

来自分类Dev

弹性搜索1.4和Drupal 7:在查询中使用数组

来自分类Dev

Node.js应用程序和Drupal Nginx冲突

来自分类Dev

使用Composer安装CodeIgniter 4问题

来自分类Dev

使用Composer的多个应用程序

来自分类Dev

运行Nginx和Drupal

来自分类Dev

在composer和laravel中使用require-dev

来自分类Dev

使用Composer安装Laravel之后安装和配置Jenkins

来自分类Dev

使用Composer嵌套的依赖项和私有存储库

来自分类Dev

使用Composer的自动加载器和个人代码

来自分类Dev

使用Cloud Proxy的Google Cloud Composer和MS SQL

来自分类Dev

使用Composer和Laravel 5安装Laravel Collection

来自分类Dev

使用 docker composer 运行和配置 mqtt 代理

来自分类Dev

Composer 安装失败,使用 CircleCI 和 Laravel 6

来自分类Dev

nss和api.github.com的composer.phar问题

来自分类Dev

使用Drush进行Drupal核心更新会产生问题吗?

来自分类Dev

我可以使用“备份和迁移”模块来备份Drupal 6并在Drupal 7中还原吗?

来自分类Dev

什么是作曲家?什么是composer.json和composer.phar?以及使用composer.json以及开发人员为何使用它?

来自分类Dev

Laravel-使用Composer Install从GitHub安装Web应用程序时出现Composer错误

来自分类Dev

Drupal,Bootstrap和Jquery冲突?

来自分类Dev

使用特定补丁编号应用一系列补丁

来自分类Dev

如何使用Git和Grunt / Sass / Composer管理已编译资产的版本控制和生产部署?

Related 相关文章

  1. 1

    Hyperledger Composer 0.15 和 Web 应用程序 - 卡片的使用

  2. 2

    linux使用/应用补丁和与帅哥有关的混乱

  3. 3

    使用 Composer 和 Symfony 进行故障排除

  4. 4

    使用带有npm,bundler和composer的Grunt的Web应用程序的理想项目目录结构

  5. 5

    使用 Composer 为 Drupal 8 模块安装 RC1 版本

  6. 6

    如何在我的网站中同时使用Laravel和Drupal?

  7. 7

    Drupal 8:使用XDebug和PHPStorm调试测试-逐步完成

  8. 8

    Drupal 8:使用XDebug和PHPStorm调试测试-逐步完成

  9. 9

    弹性搜索1.4和Drupal 7:在查询中使用数组

  10. 10

    Node.js应用程序和Drupal Nginx冲突

  11. 11

    使用Composer安装CodeIgniter 4问题

  12. 12

    使用Composer的多个应用程序

  13. 13

    运行Nginx和Drupal

  14. 14

    在composer和laravel中使用require-dev

  15. 15

    使用Composer安装Laravel之后安装和配置Jenkins

  16. 16

    使用Composer嵌套的依赖项和私有存储库

  17. 17

    使用Composer的自动加载器和个人代码

  18. 18

    使用Cloud Proxy的Google Cloud Composer和MS SQL

  19. 19

    使用Composer和Laravel 5安装Laravel Collection

  20. 20

    使用 docker composer 运行和配置 mqtt 代理

  21. 21

    Composer 安装失败,使用 CircleCI 和 Laravel 6

  22. 22

    nss和api.github.com的composer.phar问题

  23. 23

    使用Drush进行Drupal核心更新会产生问题吗?

  24. 24

    我可以使用“备份和迁移”模块来备份Drupal 6并在Drupal 7中还原吗?

  25. 25

    什么是作曲家?什么是composer.json和composer.phar?以及使用composer.json以及开发人员为何使用它?

  26. 26

    Laravel-使用Composer Install从GitHub安装Web应用程序时出现Composer错误

  27. 27

    Drupal,Bootstrap和Jquery冲突?

  28. 28

    使用特定补丁编号应用一系列补丁

  29. 29

    如何使用Git和Grunt / Sass / Composer管理已编译资产的版本控制和生产部署?

热门标签

归档