253  /  384

Инструмент @bitrix/cli

Просмотров: 1326 (Статистика ведётся с 06.02.2017)
Анна Кокина
Сложность урока:
4 уровень - сложно, требуется сосредоточится, внимание деталям и точному следованию инструкции.
1
2
3
4
5
Недоступно в редакциях:
Ограничений нет

@bitrix/cli — консольный инструмент Битрикс-разработчика. Основная цель — упростить и автоматизировать разработку фронтенда для проектов на 1С-Битрикс: Управление Сайтом и Битрикс24.
Требования для его нормальной работы, версии:
Node: 9.11.2
NPM: 5.6.0.

Содержание урока:

Описание

@bitrix/cli - это набор консольных команд:

  1. bitrix build для сборки и транспиляции Транспиляция — это перевод исходного кода с одного языка на другой. ES6+ кода в кросс-браузерный ES5;
  2. bitrix test для запуска Mocha Mocha (Мока) — JavaScript тест-фреймворк, который можно запускать как на node.js, так и в браузере, удобен для асинхронного тестирования. Тесты Mocha запускаются серийно, позволяя гибко и точно создавать отчеты.

    Подробнее...
    -тестов;
  3. bitrix create для быстрого создания расширения Расширение (экстеншн, extension) — способ организации JS и CSS кода в продукте.

    Подробнее...
    («экстеншна»).

Примечание: В первую очередь, @bitrix/cli предназначен для работы расширениями («экстеншнами»), шаблонами сайта и шаблонами компонентов.

Установка

  • NPM: npm — менеджер пакетов, входящий в состав Node.js.

    Подробнее...

    $ npm install -g @bitrix/cli
    

  • YARN: Yarn — это новый менеджер пакетов, созданный совместно Facebook, Google, Exponent и Tilde.

    Подробнее...

    $ yarn global add @bitrix/cli
    

Конфигурация

  • Базовая конфигурация:

    module.exports = {
    	input: './src/app.js', 
    	output: './dist/app.bundle.js',
    };
    

  • Все параметры:

    module.exports = {
    	// Файл, для которого необходимо выполнить сборку. 
    	// Обычно это './src/<extension>.js
    	// Необходимо указать относительный путь 
    	input: string, 
    	
    	// Путь к бандлу, который будет создан в результате сборки 
    	// Обычно это ./dist/<extension_name>.bundle.js
    	// Необходимо указать относительный путь 
    	output: string,
    	
    	// Неймспейс, в который будут добавлены все экспорты из файла указанного в input
    	// Например 'BX.Main.Filter'
    	namespace: string,
    	
    	// Списки файлов для принудительного объединения. 
    	// Файлы будут объединены без проверок на дублирование кода. 
    	// sourcemap's объединяются автоматически 
    	// Необходимо указать относительные пути
    	concat: {
    		js: Array<string>,
    		css: Array<string>,
    	},
    	
    	// Разрешает или запрещает сборщику модифицировать config.php
    	// По умолчанию true (разрешено)
    	adjustConfigPhp: boolean,
    	
    	// Разрешает или запрещает сборщику удалять неиспользуемый код. 
    	// По умолчанию true (включено).
    	treeshake: boolean,
    	
    	// Разрешает или запрещает пересобирать бандлы 
    	// если сборка запущена не в корне текущего расширения 
    	// По умолчанию `false` (разрешено)
    	'protected': boolean,
    	
    	plugins: {
    		// Переопределяет параметры Babel.
    		// Можно указать собственные параметры Babel
    		// https://babeljs.io/docs/en/options
    		// Если указать false, то код будет собран без транспиляции
    		babel: boolean | Object,
    		
    		// Дополнительные плагины Rollup, 
    		// которые будут выполняться при сборке бандлов 
    		custom: Array<string | Function>,
    	},
    };
    

Подробнее о структуре расширений читайте в соответствующем уроке. Расширение (экстеншн, extension) — способ организации JS и CSS кода в продуктах 1С-Битрикс: Управление Сайтом и Битрикс24.

Подробнее...

Сборка

Для запуска сборки выполните команду:

$ bitrix build

Сборщик рекурсивно найдет все файлы bundle.config.js и выполнит для каждого конфига сборку и транспиляцию.

Дополнительные параметры:

  • --watch, -w

    Режим отслеживания изменений. Пересобирает бандлы Бандл (bundle, комплект/набор) - это совокупность каких-либо программных данных (файлов), объеденных по какому-либо признаку. В данном случае бандлы — это обработанные и объединенные исходные файлы. после изменения исходных файлов.

    $ bitrix build --watch
    

  • --test, -t

    Режим непрерывного тестирования. Тесты запускаются после каждой сборки. Обратите внимание, сборка с параметром --test выводит в отчете только статус прохождения тестов — прошли или не прошли, полный отчет выводит только команда bitrix test.

    $ bitrix build --test
    

  • --modules, -m

    Сборка только указанных модулей. Параметр поддерживается только в корневой c модулями local/js и bitrix/modules. В значении укажите имена модулей через запятую, например:

    $ bitrix build --modules main,ui,landing
    

  • --path, -p

    Запуск сборки для указанной директории. В значении укажите относительный путь к директории, например:

    $ bitrix build --path ./main/install/js/main/loader
    

Запуск тестов

Запускает Mocha-тесты и выводит подробный отчет о прохождении тестов.

Примечание: Тестами считаются JS файлы, расположенные в директории ./test относительно файла bundle.config.js. В момент запуска тестов исходный код и код тестов на лету обрабатывается сборщиком и после чего выполняется. Поэтому тесты можно писать на ES6+.

Дополнительные параметры:

  • --watch, -w

    Режим отслеживания изменений. Запускает тесты после изменения исходных файлов и кода тестов.

    $ bitrix test --watch
    

  • --modules, -m

    Тестирование только указанных модулей. Параметр поддерживается только в корневой директории репозитория. В значении укажите имена модулей через запятую, например:

    $ bitrix test --modules main,ui,landing
    

  • --path, -p

    Запуск тестов для указанной директории. В значении укажите относительный путь к директории, например:

    $ bitrix test --path ./main/install/js/main/loader.
    

Создание расширения

Для создания расширения ("экстеншна"):

  • Перейдите в директорию local/js/ {module} {module} - должно быть без точек в названии, например партнерский префикс. Подробнее...
  • Выполните команду bitrix create. После выполнения команды создается папка расширения, например /ext и подключатся так: \Bitrix\Main\UI\Extension::load("partner.ext"); для пути local/js/partner/ext/.
  • Ответьте на вопросы мастера

Примечание: Можно не переходить в /{module}. Останьтесь в local/js/, выполните в bitrix create расширение myext и загрузите его \Bitrix\Main\UI\Extension::load("myext");.


Видео от разработчика



3
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии