enb / enb-bem-techs

ENB package to build BEM-projects
Other
22 stars 22 forks source link

Add index module #70

Closed blond closed 10 years ago

blond commented 10 years ago

Сейчас обычный конфиг выглядит так:

nodeConfig.addTechs([
    [require('enb-bem-techs/techs/levels'), { levels: getLevels(config) }],
    [require('enb/techs/file-provider'), { target: '?.bemjson.js' }],
    [require('enb-bem-techs/techs/bemjson-to-bemdecl')],
    [require('enb-bem-techs/techs/deps-old')],
    [require('enb-bem-techs/techs/files')],
    /* ... */
]);

В каждой строке мы подключаем модуль технологии. Помимо этого, для каждой технологии приходится писать полный путь, относительно пакета enb-bem-techs/techs/tech-name.

Чтобы избавиться от повторов, можно добавить index.js файл в корень пакета, который будет предоставлять объект из всех технологий.

var techs = require('enb-bem-techs');

nodeConfig.addTechs([
    [techs.levels, { levels: getLevels(config) }],
    [require('enb/techs/file-provider'), { target: '?.bemjson.js' }],
    [techs.bemjsonToBemdecl],
    [techs.depsOld],
    [techs.files],
    /* ... */
]);

Технологии должны быть доступны по ключам не только в CamelCase, но и в dash-delim стиле.

var bem = require('enb-bem-techs');

nodeConfig.addTechs([
    [bem['levels'], { levels: getLevels(config) }],
    [require('enb/techs/file-provider'), { target: '?.bemjson.js' }],
    bem['bemjson-to-bemdecl'],
    bem['deps-old'],
    bem['files'],
    /* ... */
]);
blond commented 10 years ago

/сс @tadatuta @arikon

arikon commented 10 years ago

:+1:

blond commented 10 years ago

После обсуждения с @tadatuta решили, что dash-delim стиль не нужен.