Стилус: Создание миксинов с l oop приводит к проблеме "переопределения"? - PullRequest
0 голосов
/ 03 мая 2020

У меня есть следующий JSON -файл:

{
  "Primary": {
    "mixin": "primary",
    "color": "red"
  },
  "Secondary": {
    "mixin": "secondary",
    "color": "blue"
  }
}

..., который я хочу анализировать и динамически создавать из него миксины.

Вдохновлен { ссылка } Я попробовал следующее:

colors = json('./colors.json', { hash: true })

for entry in colors
  mixin = scale[entry]["mixin"]
  value = scale[entry]["color"]

  // FIXME: Hack to cast mixin-name to string -> is there a better way?
  define("" + mixin, @() {
    color value
  })

Этот код компилируется нормально, но когда я пытаюсь использовать сгенерированные миксины, например, вот так:

.text
  display block
  secondary()
  primary()

Скомпилированный CSS выглядит следующим образом:

.text {
    display: block;
    color: #00f;
}

... при этом весь текст отображается синим, а не красным.

Кажется, что код не генерирует все миксины (хотя я подтвердил, что он проходит через каждую запись JSON в l oop) или переопределяет их в каждой итерации. По крайней мере, каждый миксин - кроме последнего - кажется, здесь теряется ...

Я не совсем уверен, как продолжить отладку здесь. Есть идеи?

PS: я использую "stylus": "^0.54.7" в своем пакете. json.

...