EN RU
Форум

Методология

Технологии

Инструментарий

Библиотеки

Учебные материалы

Технологии для работы с файлами

Все технологии, включенные в пакет ENB, находятся в папке techs пакета. Подключаются из make-файла с помощью require('enb/techs/<tech-name>').

Например:

require('enb/techs/js')

Чтобы подключить технологию к ноде, укажите класс и опции (необязательно):

nodeConfig.addTech([ require('enb/techs/<tech-name>'), {/* [options] */} ]);

Без опций:

nodeConfig.addTech(require('enb/techs/<tech-name>'));

Чтобы создать копии технологий для каждого языка, который установлен для ноды или проекта (если у ноды не указаны языки), укажите подстроку {lang} в опциях при настройке технологии.

Например:

nodeConfig.setLanguages(['ru', 'en', 'tk']);
nodeConfig.addTech([require('js-i18n'), { target: '?.{lang}.js', lang: '{lang}' }]);

Эквивалентно:

nodeConfig.addTech([require('js-i18n'), { target: '?.ru.js', lang: 'ru' }]);
nodeConfig.addTech([require('js-i18n'), { target: '?.en.js', lang: 'en' }]);
nodeConfig.addTech([require('js-i18n'), { target: '?.tk.js', lang: 'tk' }]);

Технологии

file-copy

Копирует один таргет в другой. Может, например, использоваться для построения _?.css из ?.css для development-режима.

Опции

Пример

nodeConfig.addTech([ require('enb/techs/file-copy'), {
  source: '?.css',
  target: '_?.css'
} ]);

file-merge

Склеивает набор файлов в один.

Опции

Пример

nodeConfig.addTech([ require('enb/techs/file-merge'), {
    sources: ['?.bemhtml', '?.pre.js']
    target: '?.js'
} ]);

file-provider

Предоставляет существующий файл для make-платформы. Может, например, использоваться для предоставления исходного bemdecl-файла.

Опции

Пример

nodeConfig.addTech([ require('enb/techs/file-provider'), { target: '?.bemdecl.js' } ]);

symlink

Создает симлинк из одного таргета в другой. Может, например, использоваться для построения _?.css из ?.css для development-режима.

Опции

Пример

nodeConfig.addTech([ require('enb/techs/symlink'), {
  fileTarget: '?.css',
  symlinkTarget: '_?.css'
} ]);

write-file

Записывает целевой файл в файловую систему.

Опции

Пример

Генерируем текстовый-файл

nodeConfig.addTech([ require('enb/techs/write-file'), {
    content: 'bla bla bla',
    fileOptions: {
        encoding: 'utf8', // default
        mode: '0o666', // default
        flag: 'w' //default
        },
    target: '?.bla.txt'
} ]);

Генерируем bemdecl-файл

nodeConfig.addTech([ require('enb/techs/write-file'), {
    content: 'exports.blocks = {name: "bla"}',
    fileOptions: {
        encoding: 'utf8', // default
        mode: '0o666', // default
        flag: 'w' //default
        },
    target: '?.bemdecl.js'
} ]);