Silverstripe 4 - CSS和JS要求。如何/什么填充/ resources目录?

时间:2017-12-11 01:03:34

标签: silverstripe silverstripe-4

我有一个分叉的SS3.x模块,通过composer从它的fork中拉下来,并开始移植到SS4。到目前为止一切都那么好,除非涉及到要求。

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

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目录没有出现在这个模块中(其他模块都在那里)。而且我无法在网上找到任何关于如何运作的信息。

编辑:作为旁注,我想知道documentation for Requirements是否具有误导性?它通过模块省略了这个警告,并提到了资源目录。如果该文档仅用于传达在正常的mysite开发中使用JS / CSS的过程,那么它只是有点令人困惑,因为代码会在任何地方对我们进行采样。肯定是哪个不是/供应商的直接网址。

1 个答案:

答案 0 :(得分:4)

在跟踪基本上使用/ resources目录的代码之后找到这个。我的查询的简短回答就是运行

composer vendor-expose

这会调用执行此复制的VendorExposeTask。我发现使用此任务的唯一其他地方是VendorPlugin安装方法。所以我假设除了上面的命令之外,SS实际上代表你做这件事的唯一方法是初始安装模块。

相关问题