@bitrix/cli

Bitrix CLI tools


Keywords
bitrix, bitrix24, cli, bundler, es6
License
MIT
Install
npm install @bitrix/cli@2.3.8

Documentation

@bitrix/cli

@bitrix/cliΒ β€” ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΉ инструмСнт Битрикс-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, основная Ρ†Π΅Π»ΡŒΒ β€” ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΈΒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π° для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² на «Битрикс Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π‘Π°ΠΉΡ‚ΠΎΠΌΒ» и «Битрикс24Β».

npm version

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

  1. ОписаниС
  2. Установка
  3. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ
  4. Π‘Π±ΠΎΡ€ΠΊΠ°
  5. Запуск тСстов
  6. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΡΡ‚Π΅Π½ΡˆΠ½Π°

ОписаниС

@bitrix/cliΒ β€” это Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄

  1. bitrix build для сборки и транспиляции ES6+ ΠΊΠΎΠ΄Π°
  2. bitrix test для запуска Mocha тСстов
  3. bitrix create для быстрого создания Β«ΡΠΊΡΡ‚Π΅Π½ΡˆΠ½Π°Β»

Π’Β ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, @bitrix/cli ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡΒ Β«ΡΠΊΡΡ‚Π΅Π½ΡˆΠ½Π°ΠΌΠΈΒ», шаблонами сайта и шаблонами ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Установка

NPM

$ npm install -g @bitrix/cli

YARN

$ yarn global add @bitrix/cli

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ

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

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

ВсС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

module.exports = {
	// Π€Π°ΠΉΠ» для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ сборку. 
	// НСобходимо ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ 
	input: string, 
	
	// ΠŸΡƒΡ‚ΡŒ ΠΊ Π±Π°Π½Π΄Π»Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ создан Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ сборки 
	// ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это ./dist/<extension_name>.bundle.js
	// НСобходимо ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ 
	output: string || {js: string, css: 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>,
	},
    // ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡƒΡ‚Π΅ΠΉ ΠΊ изобраТСниям Π² CSS
    // Доступно с вСрсии 3.0.0
    cssImages: {
        // ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ изобраТСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹
        // 'inline' β€” ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ изобраТСния Π² ΠΈΠ½Π»Π°ΠΉΠ½ 
        // 'copy' β€” ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ изобраТСния Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ 'output'
        // По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 'inline'.
        type: 'inline' | 'copy', 

        // ΠŸΡƒΡ‚ΡŒ ΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ скопированы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ изобраТСния 
	    output: string,

        // ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΊΠ±, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹ Π² ΠΈΠ½Π»Π°ΠΉΠ½
        // По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 14ΠΊΠ±
        maxSize: number,

        // Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈ svgo для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ svg 
        // По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ true 
        svgo: boolean, 
    },
    resolveFilesImport: {
        // ΠŸΡƒΡ‚ΡŒ ΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ скопированы ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ изобраТСния 
        output: string,
        
        // ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Π΅ для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Ρ‚ΠΈΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ²
        // По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ['**/*.svg', '**/*.png', '**/*.jpg', '**/*.gif']
        // https://github.com/isaacs/minimatch
        include: Array<string>,

        // По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ []
        exclude: Array<string>,
    },
    
    // ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π° Browserslist 
    // false β€” Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ)
    // true β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» .browserslist / .browserslistrc
    browserslist: boolean | string | Array<string>,
  
    // Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΌΠΈΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ 
    // По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ 
    // ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ настроСк Terser
    // false β€” Π½Π΅ ΠΌΠΈΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ)
    // true β€” ΠΌΠΈΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с настройками ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 
    // object β€” ΠΌΠΈΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ настройками 
    minification: boolean | object,
  
    // Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… JS классов 
    // По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° выставляСтся автоматичСски Π½Π° основании browserslist
    transformClasses: boolean,
  
    // Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ созданиС Source Maps Ρ„Π°ΠΉΠ»ΠΎΠ² 
    sourceMaps: boolean,
    
    // Настройки тСстов 
    tests: {
        // Настройки Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ 
        localization: {
            // Код языка Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΠΈΡŽ 'en'
            languageId: string,
            // Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΠ»ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Ρ„Ρ€Π°Π· Π² тСстах. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ 
            autoLoad: boolean,
        },
    },
};

Π‘Π±ΠΎΡ€ΠΊΠ°

Для запуска сборки Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

$ bitrix build

Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ рСкурсивно Π½Π°ΠΉΠ΄Π΅Ρ‚ всС Ρ„Π°ΠΉΠ»Ρ‹ bundle.config.js ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° сборку ΠΈ Ρ‚Ρ€Π°Π½ΡΠΏΠΈΠ»ΡΡ†ΠΈΡŽ.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

--watch [<fileExtension>[, ...]], -w=[<fileExtension>[, ...]]

Π Π΅ΠΆΠΈΠΌ отслСТивания ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠŸΠ΅Ρ€Π΅ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚ Π±Π°Π½Π΄Π»Ρ‹ послС измСнСния исходных Ρ„Π°ΠΉΠ»ΠΎΠ². Π’ качСствС значСния ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ список Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ измСнСния.

$ bitrix build --watch

Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚

$ bitrix build -w

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ с отслСТиваниСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²

$ bitrix build -w=defaults,json,mjs,svg

defaults β€” Π½Π°Π±ΠΎΡ€ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Он Ρ€Π°Π²Π΅Π½ js,jsx,vue,css,scss.

--test, -t

Π Π΅ΠΆΠΈΠΌ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ³ΠΎ тСстирования. ВСсты Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ сборки. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, сборка с парамСтром --test Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π²Β ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ статус прохоТдСния тСстов — ΠΏΡ€ΠΎΡˆΠ»ΠΈ ΠΈΠ»ΠΈ Π½Π΅Β ΠΏΡ€ΠΎΡˆΠ»ΠΈ, ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΎΡ‚Ρ‡Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° bitrix test.

$ bitrix build --test

--modules <moduleName>[, ...], -m=<moduleName>[, ...]

Π‘Π±ΠΎΡ€ΠΊΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Β ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ с модулями local/js ΠΈ bitrix/modules. Π’Β Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΈΠΌΠ΅Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

$ bitrix build --modules main,ui,landing

--path <path>, -p=<path>

Запуск сборки для ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. Π’Β Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊΒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

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

Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚

$ bitrix build -p=./main/install/js/main/loader

--extensions <extensionName>[, ...], -e=<extensionName>[, ...]

ЗапускаСт сборку ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΡΠΊΡΡ‚Π΅Π½ΡˆΠ½ΠΎΠ². Π’ качСствС значСния Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя ΡΠΊΡΡ‚Π΅Π½ΡˆΠ½Π°, Π»ΠΈΠ±ΠΎ список ΠΈΠΌΠ΅Π½ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ. ΠšΠΎΠΌΠ°Π½Π΄Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ· любой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

$ bitrix build -e=main.core,ui.buttons,landing.main

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

```bash $ bitrix test ``` Команда запускаСт Mocha тСсты ΠΈΒ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎΒ ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ тСстов. > ВСстами ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡΒ JS Ρ„Π°ΠΉΠ»Ρ‹, располоТСнныС Π²Β Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ `./test`, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ„Π°ΠΉΠ»Π° `bundle.config.js`. Π’Β ΠΌΠΎΠΌΠ΅Π½Ρ‚ запуска тСстов исходный ΠΊΠΎΠ΄ ΠΈΒ ΠΊΠΎΠ΄ тСстов, Π½Π°Π»Π΅Ρ‚Ρƒ обрабатываСтся сборщиком и послС Ρ‡Π΅Π³ΠΎ выполняСтся. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ тСсты ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π°Β ES6+

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

--watch [<fileExtension>[, ...]], -w=[<fileExtension>[, ...]]

Π Π΅ΠΆΠΈΠΌ отслСТивания ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ЗапускаСт тСсты послС измСнСния исходных Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΒ ΠΊΠΎΠ΄Π° тСстов. Π’ качСствС значСния ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ список Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ измСнСния.

$ bitrix test --watch

Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚

$ bitrix test -w

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ с отслСТиваниСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²

$ bitrix test -w=defaults,json,mjs,svg

defaults β€” Π½Π°Π±ΠΎΡ€ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Он Ρ€Π°Π²Π΅Π½ js,jsx,vue,css,scss.

--modules <moduleName>[, ...], -m=<moduleName>[, ...]

ВСстированиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ рСпозитория. Π’Β Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΈΠΌΠ΅Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

$ bitrix test --modules main,ui,landing

--path <path>, -p=<path>

Запуск тСстов для ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. Π’Β Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊΒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

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

Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚

$ bitrix test -p=./main/install/js/main/loader

--extensions <extensionName>[, ...], -e=<extensionName>[, ...]

ЗапускаСт тСсты Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΡΠΊΡΡ‚Π΅Π½ΡˆΠ½Π°Ρ…. Π’ качСствС значСния Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя ΡΠΊΡΡ‚Π΅Π½ΡˆΠ½Π°, Π»ΠΈΠ±ΠΎ список ΠΈΠΌΠ΅Π½ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ. ΠšΠΎΠΌΠ°Π½Π΄Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ· любой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

$ bitrix test -e=main.core,ui.buttons,landing.main

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Β«ΡΠΊΡΡ‚Π΅Π½ΡˆΠ½Π°Β»

Для создания Β«ΡΠΊΡΡ‚Π΅Π½ΡˆΠ½Π°Β»

  1. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ local/js/{module}
  2. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ bitrix create
  3. ΠžΡ‚Π²Π΅Ρ‚ΡŒΡ‚Π΅ Π½Π° вопросы мастСра