gradle - Gradle:覆盖插件中的排除配置
问题描述
我正在使用 Liferays“Gradle Theme Builder”开发 Liferay 7.2 主题(WAR 风格)。我也将它配置为生成 CSS 源映射。这工作正常,除了原始 SCSS 文件没有与主题 WAR 文件一起部署——另一方面,源映射已部署。最后,浏览器中的 DevTools 向服务器询问大约 200 个不存在的 SCSS 源文件,我无法手动将其分配给本地文件(看起来 Firefox 和 Chrome 不久前删除了该功能;无论如何我在 DevTools 中玩了很多本地文件和工作区,我无法让浏览器将本地文件识别为“这些是我正在寻找的来源!”)。
我尝试配置 gradle war 任务以将这些 scss 文件包含在生成的 WAR 中,但是:Theme Builder 是一个 gradle 插件,它以war
编程方式配置任务并将排除设置为**/*.scss
(请参阅此处的源代码)。更改该插件是不可能的,那么我如何在我的build.gradle
?
或者,我尝试在第一个 war 任务之后运行第二个 war 任务,目的是将这些 scss 文件添加到现有的 WAR 文件中(如果我想要“主题开发构建”,则可以运行另一个任务的额外好处):
task fragmentWAR(type: War) {
group 'build'
description 'Prepares a war with scss files'
dependsOn war
from('build/buildTheme') {
include '**/*.scss'
exclude '**/.sass-cache'
}
}
task fragmentDeploy {
group 'build'
description 'Goes to war with scss files'
dependsOn += fragmentWAR
dependsOn += deploy
}
deploy.mustRunAfter(fragmentWAR)
但这弄乱了 WAR 文件:一些文件现在在 WAR 中创建了两次,而另一些文件则完全丢失了。
最后,我需要一种方法将 scss 文件以及转译的 css 和 css 源映射部署到我的测试服务器中。有没有人知道如何规避由主题构建器插件配置的排除项 - 或任何其他可能对我有帮助的想法?
解决方案
您是否尝试过使用 generator-liferay-theme NPM 模块而不是 Gradle Theme Builder 插件?为 Liferay 7.2 使用 v9.x 的 generator-liferay-theme。
有关更多信息,请参见 https://github.com/liferay/liferay-js-themes-toolkit和 https://github.com/liferay/liferay-js-themes-toolkit/tree/master/packages/generator-liferay-theme细节。
当我使用这个模块生成我的主题时,我看到 .scss 和 .css.map 都是包含在我的主题 .war 文件中的文件。
希望能帮助到你。
推荐阅读
- microsoft-graph-api - 如何从 Microsoft Graph API 读取 Delve 配置文件信息?
- c - 我对 Luhn 算法(信用卡有效性)的尝试似乎可以识别某些卡,但不能识别其他卡
- racket - 我怎样才能使用高阶函数来重写这些(使用 Dr.Racket)
- node.js - 所需类型“上传!”的变量“$picture” 没有提供
- numpy - SVD 在连续循环下没有收敛于线性最小二乘
- slack - Slack App - 是否可以根据用户自定义块?
- cytoscape.js - 为什么 Cytoscape.js 图没有跨越引导卡的整个宽度?
- javascript - Django中的MapBox标记集群
- python - 归并排序算法的误区
- python - 有没有办法在不使用全局关键字或循环的情况下做到这一点?