这是我的第一个问题,对于任何错误,我深表歉意。
我正在使用React和Sytlus作为CSS预处理程序来构建Meteor应用程序。我希望用户能够选择一些颜色并将其作为变量导入到我的手写笔文件中。 (通过JavaScript或jQuery直接设置变量并不能解决问题,因为我想在Stylus中使用它们并在多个级别(如悬停等)上使用它们。嗯,它可以工作,但会导致很多代码,我更喜欢将它们整齐地整理。)
所以现在我正在将用户的颜色写入一个看起来像这样的JSON文件中:
{
"colorNPK": {
"N": "#ff6600",
"P": "#dddd22",
"K": "#0000ff"
},
"colorSID": {
"S": "#440000",
"I": "#004400",
"D": "#000044"
}
}
然后将其导入到我的variables.import.styl顶部,如下所示:
json('../../public/variables.json')
// then follows the rest of my variables
gold = #f9a602
darkgold = #926d02
middlebrown = #442803
...
结果,我可以在所有手写笔文件中使用变量,例如colorNPK-N
。在初始应用程序启动时加载变量确实可以,但是当我在运行时重写JSON文件时,样式不会更新,并且我无法在应用程序中看到新颜色。
有人对更改后的JSON文件重新载入手写笔文件有任何想法吗?
这可以通过使用自定义的流星编译器插件来完成,但是现有的流媒体编译器插件都不能使用从样式文件中导入的json
文件来完成。
一种快速的解决方法是从某个地方的js代码导入json
文件,以便链接器可以查找并监视它们的更改。
if (Meteor.isDevelopment) {
require('../../public/variables.json');
}