Skip to content

Instantly share code, notes, and snippets.

@tavriaforever
Forked from corpix/deps.js
Created June 23, 2016 10:27
Show Gist options
  • Save tavriaforever/380ba2cfac3d1b840787b5625662cf84 to your computer and use it in GitHub Desktop.
Save tavriaforever/380ba2cfac3d1b840787b5625662cf84 to your computer and use it in GitHub Desktop.
// Полная запись deps-сущности
{
block : 'bBlock',
elem : 'elem',
mod : 'modName',
val : 'modValue',
tech : 'techName', // технология, для которой собираются зависимости (например, js)
mustDeps : [], // подключатся до блока
shouldDeps : [], // порядок подключения не важен (важно лишь подключить)
noDeps : [], // можно отменить какую-то зависимость (например, i-bem__dom_init_auto)
}

Примечания

1. Корневые блок и элементы берутся из имени файла, поэтому необязательны

Для файла b1.deps.js записи ниже эквивалентны:

({ 
  block : 'b1', 
  mustDeps : { block : 'b2' } 
})

({
  mustDeps : { block : 'b2' }
})

2. elem подключает только элемент (но не сам блок)

{ block : 'b1', elem : 'e1' }

Аналогично для mod и val.

3. elems — это шорткат, который позволяет подключить несколько элементов для блока, а также сам блок

{ block : 'b1', elems : ['e1', 'e2'] }

Либо так:

{
  block : 'b1',
  elems : [
    { elem : 'e1' },
    { elem : 'e2', mod : 'modName' },
    { elem : 'e3', mods : { modName : modVal }
  ]
}

4. depsByTech - пример

([
{
    tech: 'js',
    mustDeps: [
        {
            block: 'some-block',
            mods: { type: 'olololo' },
            tech: 'bh'
        }
    ]
}
])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment