问题描述
我正在使用 ExtJS(sencha cmd 版本 7.3.0.19,SDK 版本 4.2)构建一个应用程序,并且正在尝试添加 aria 支持。当我包含 ext-aria
包(通过将 "requires": [ "ext-aria" ]
添加到 app.json)时,构建失败并显示以下错误:
[INF] executing compass using system installed ruby runtime
error SDM-all.scss (Line 8 of ../../../../../ext/packages/ext-theme-gray/sass/var/button/Button.scss: Undefined variable: "$base-color".)
当我检查构建过程中生成的 Sass 文件时(在 build/temp/production/App/sass/App-all.scss
中),我发现每个主题的 @import 语句现在的顺序错误:
<snip>
$relative-image-path-for-uis: $ext-theme-gray-resource-path;
@import '../../../../../ext/packages/ext-theme-gray/sass/var/button/Button';
@import '../../../../../ext/packages/ext-theme-gray/sass/var/toolbar/Toolbar';
@import '../../../../../ext/packages/ext-theme-gray/sass/var/panel/Panel';
@import '../../../../../ext/packages/ext-theme-gray/sass/var/tip/Tip';
@import '../../../../../ext/packages/ext-theme-gray/sass/var/Component';
@import '../../../../../ext/packages/ext-theme-gray/sass/var/ProgressBar';
<snip>
在这种情况下,Button
依赖于 Component
中设置的变量,该变量尚未导入。这显示了 ext-theme-gray
主题的问题,但构建中的每个其他主题都存在同样的问题:ext-theme-classic
、ext-theme-neutral
和 ext-theme-base
。
当移除对 ext-aria
的要求后,生成的 Sass 会按照正确的顺序进行所有导入并且构建成功:
<snip>
$relative-image-path-for-uis: $ext-theme-gray-resource-path;
@import '../../../../../ext/packages/ext-theme-gray/sass/var/Component';
@import '../../../../../ext/packages/ext-theme-gray/sass/var/ProgressBar';
@import '../../../../../ext/packages/ext-theme-gray/sass/var/button/Button';
@import '../../../../../ext/packages/ext-theme-gray/sass/var/toolbar/Toolbar';
@import '../../../../../ext/packages/ext-theme-gray/sass/var/panel/Panel';
<snip>
我不明白为什么引入一个新包会改变其他包/主题生成它们的 Sass 的方式,并且在尝试挖掘构建文件时,我找不到负责此排序的代码。
>有人可以提供一些指导吗?
这个 old forum post 似乎描述了同样的问题,但没有得到任何帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)