Có thể chấp nhận sửa đổi tệp composer.json của Drupal không?


8

Drupal tuân thủ thực tiễn tốt nhất là không bao giờ sửa đổi lõi .

Drupal 8 có tệp composer.json được tích hợp vào lõi, nếu bạn cần thêm thư viện của bên thứ ba, bạn có nên sửa đổi composer.json hay có cách nào tốt hơn để làm điều này?


Chúng ta có thể mở lại cuộc thảo luận này không, đã hai năm kể từ lần thảo luận cuối cùng? Tôi đã đọc rằng trong Drupal 8 RC1, giờ đây người ta có thể quản lý các mô-đun trực tiếp thông qua composer requiretài liệu Drupal. Đó là tất cả tốt và tốt, nhưng nếu tôi cần phải làm gì composer require drupal/drupal-extensionkéo theo Behat, và sau đó sửa đổi nhiều thứ trong thư mục nhà cung cấp của lõi D8 thì sao? Đây đặc biệt là một câu hỏi khó ở Pantheon, nơi rõ ràng gốc repo phải là tài liệu Drupal.
kostajh

Câu trả lời:


5

Có thể sử dụng Drupal 8 vào composer.jsontệp của riêng bạn :

{
    "name": "davidbarratt/mydrupalproject",
    "require": {
        "drupal/drupal": "8.*"
        "composer/installers": "1.*"
    },
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "drupal/drupal",
                "type": "drupal-core",
                "version": "8.0.0-dev",
                "source": {
                    "url": "http://git.drupal.org/project/drupal.git",
                    "type": "git",
                    "reference": "8.x"
                }
            }
        }
    ],
    "minimum-stability": "dev"
}

Có một yêu cầu kéo composer/installerssẽ cho phép cài đặt các drupal-coreloại dự án: http://github.com/composer/installers/pull/38

Rất thích đầu vào của bạn theo yêu cầu kéo ở trên, cũng như yêu cầu khác trong hàng đợi cho phép cài đặt các mô-đun / chủ đề / hồ sơ.

Một giải pháp khác hiện đang hoạt động là mô-đun Trình quản lý soạn thảo , tạo điều kiện composer.jsonsử dụng cho các mô-đun. Nó hiện có sẵn cho Drupal 7 và sẽ có sẵn cho Drupal 8 sau khi phiên bản alpha Drupal 8 kết thúc.

Cảm ơn rất nhiều, Rob


Bạn có muốn cập nhật câu trả lời của bạn. :) drupal.org/node/2404989
David Barratt

1

Ngoài ra còn có mô-đun Trình soạn thảo là trình bao bọc Drush cho Trình soạn thảo. Sau đó, mô-đun của bạn có thể cung cấp tệp soạn thảo riêng mà Drush sẽ sử dụng để tải xuống các phụ thuộc bổ sung cho mô-đun của bạn - hoặc trang web nếu bạn sử dụng ít nhất 1 mô-đun "tùy chỉnh" cho trang web drupal của mình.

Tôi cũng khuyên bạn nên xem hội thảo Drupal8 / Nhà soạn nhạc này từ DrupalCon Munich 2012: http://munich2012.drupal.org/content/drupal-has-dependencies-lets-manage-them


Drush Composer chỉ là một trình bao bọc xung quanh Nhà soạn nhạc. Nếu bạn sử dụng nó để sửa đổi các yêu cầu dựa trên Trình soạn thảo của Drupal, nó sẽ sửa đổi composer.jsontệp gốc của Drupal . Ngoài ra, video cho Munich 2012 không còn có sẵn.
paul-m

0

Đúng.

Có thể chấp nhận sử dụng Trình soạn thảo theo cách nó được sử dụng. :-)

Biên tập:

Gói này tồn tại để giúp bạn quản lý dự án Drupal dựa trên Trình soạn thảo của mình: https://github.com/drupal-composer/drupal-project


Bạn có một trích dẫn?
David Barratt

Tôi có cái này: composer create-project drupal/drupal drupal_root ~8@dev --keep-vcs cd drupal_root composer require vendor/package ~1... quyết định bạn không cần gói đó ... git checkout -- composer.json composer updateVà tôi muốn giữ nó.
paul-m

Điều đó vẫn sửa đổi tập tin gốc composer.json. Bạn vẫn phải hợp nhất các thay đổi của mình với các thay đổi của Drupal. Hoặc tệ hơn, nếu ai đó không cập nhật tệp soạn thảo của họ như đã nói, bạn có thể gặp phải các lỗi lớn hoặc lỗ hổng bảo mật nghiêm trọng. Làm thế nào để bạn có được xung quanh này?
David Barratt

Bạn không. Bạn phải làm những điều đó. Hiện tại không có công cụ soạn nhạc tự động cho Drupal 8, ngoài bất kỳ kịch bản nào bạn có thể thực hiện để làm điều đó.
paul-m

Nếu bạn phải hợp nhất các thay đổi với Drupal, đó không phải là lý do chính xác tại sao bạn không sửa đổi lõi?
David Barratt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.