ymcatwincities/vendor_stream_wrapper

创建vendor://流包装器,允许在供应商目录中链接/嵌入CSS和JS文件。

dev-8.x-1.x 2020-07-28 11:40 UTC

This package is auto-updated.

Last update: 2024-08-28 20:37:57 UTC


README

概述

Drupal和Composer一起使用非常适合管理可集成到Drupal站点的外部库。将/vendor目录放在webroot之外是一个好习惯,这正是Drupal Composer模板所做到的。然而,将供应商移动出webroot的问题在于尝试提供/vendor目录中文件的公开URL时,例如CSS或JS文件,这些文件是外部库的一部分。

此模块提供了一种新的流包装器vendor://,允许引用供应商目录中的文件。它的工作方式与Drupal核心提供的private://文件包装器非常相似。与此流包装器一起,此模块设置*.libraries.yml文件以解析vendor://引用,如下面的示例所示

example.libraries.yml

some_library:
  js:
    vendor://vendor-name/package-name/js/some_file.js: {}
  css:
    theme:
      vendor://vendor-name/package-name/css/some_file.css: {}

此模块还提供辅助函数vendor_stream_wrapper_create_url(),用于将供应商文件解析为公开URL

$public_url = vendor_stream_wrapper_create_url(
  'vendor://vendor/package/file.css'
);

配置

此模块首先在../vendor中查找供应商,然后是./vendor。如果找不到供应商文件夹,将抛出异常。如果您的供应商文件夹位于这两个位置之外,则可以通过将以下内容添加到settings.php来告诉系统在哪里找到它

$settings['vendor_file_path'] = 'path/to/vendor/folder';