4

我有一个 SS3.x 模块,我已经分叉了,通过 composer 从它的分叉中拉下来,并开始移植到 SS4。到目前为止一切都很好,除了要求方面。

我正在使用在另一个模块的现有代码中找到的需求格式,该模块具有冒号分隔的格式,如下所示:

Requirements::javascript('company/mymodule:javascript/SortableUploadField.js');

此文件存在于 /vendor/company/mymodule/javascript/SortableUploadField.js 的模块中。但是在页面加载时,我在控制台中有一个 404,因为 SS 在 /resources/company/mymodule/css/SortableUploadField.css 中查找此文件。而这并不存在。

当我看到其他模块这样做时,我将以下内容添加到模块的 composer.json 文件中:

"extra": {
    "installer-name": "sortableuploadfield",
    "expose": [
        "css",
        "javascript"
    ]
},

并运行了作曲家更新。但是这个模块没有出现 /resources 目录(其他模块在那里)。而且我在网上找不到任何关于这应该如何工作的信息。

编辑:作为旁注,我想知道需求的文档是否具有误导性?它完全忽略了模块的这个警告,并完全提到了资源目录。如果该文档只是为了传达在正常的 mysite 开发中使用 JS/CSS 的过程,那么它只是有点令人困惑,因为代码无处不在。当然,这不会是 /vendor 中某些内容的直接 url。

4

1 回答 1

5

在跟踪基本上使用 /resources 目录的代码后发现了这个。我的查询的简短回答只是在运行

作曲家供应商公开

这会调用执行此复制的 VendorExposeTask。我发现使用此任务的唯一其他地方是 VendorPlugin 安装方法。因此,我假设除了上述命令之外,SS 实际上代表您执行此操作的唯一方法是在初始安装模块时。

于 2017-12-11T01:48:12.800 回答