【问题标题】:Is there a way to dynamically reload a json import into stylus in a meteor app?有没有办法在流星应用程序中动态地将 json 导入重新加载到手写笔中?
【发布时间】:2020-05-14 14:54:32
【问题描述】:

这是我的第一个问题,如有错误,我深表歉意。

我正在构建一个使用 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 meteor stylesheet reload stylus


    【解决方案1】:

    这可以通过自定义的流星编译器插件来完成,但现有的没有一个可以使用从 styl 文件导入的 json 文件。

    一种快速的解决方法是从某处的 js 代码中导入 json 文件,以便链接器可以找到并观察它们的更改。

    if (Meteor.isDevelopment) {
      require('../../public/variables.json');
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-21
      • 1970-01-01
      • 1970-01-01
      • 2021-01-18
      • 2016-06-18
      • 2017-03-31
      • 2015-09-02
      • 2019-08-01
      相关资源
      最近更新 更多