🚨 Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis β†’
Socket
Book a DemoInstallSign in
Socket

bemaker

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bemaker

BEM project builder

latest
Source
npmnpm
Version
0.2.0
Version published
Maintainers
1
Created
Source

Bemaker β€” сборщик Π‘Π­Πœ-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π‘Π­Πœ β€” это мСтодология эффСктивной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ количСство ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΎ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС http://ru.bem.info.

Bemaker стрСмится Π²ΠΎΠΏΠ»ΠΎΡ‚ΠΈΡ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ простой способ сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Π‘Π­Πœ-Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ….

Установка

npm install bemaker

Ѐайловая структура ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Bemaker Π½Π΅ΠΏΡ€ΠΈΡ…ΠΎΡ‚Π»ΠΈΠ² ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ структурС, насколько это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Наряду с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π² сборкС Ρ‚Π°ΠΊ ΠΆΠ΅ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ссылки.

ΠžΠΆΠΈΠ΄Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ имССтся дирСктория, хранящая Π² сСбС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π±Π»ΠΎΠΊΠΎΠ², Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»Ρ‹ Π±Π»ΠΎΠΊΠ° Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ.

НапримСр:

blocks/
    button/
        button.js
        button.css
    input/
        input.js
        input.css

Для указания Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ с Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ опция directories.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹

Π’ ΠΈΠΌΠ΅Π½Π°Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² элСмСнтов ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ имя Π±Π»ΠΎΠΊΠ°, сборщик достроит Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ исходя ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π±Π»ΠΎΠΊΠ°.

НапримСр:

blocks/
    input/
        input.js
        __label.js     // input__label.js
        _size_s.css    // input_size_s.css

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ²

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° рассчитываСтся вСс, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π² дальнСйшСм Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ срСди ΠΏΡ€ΠΎΡ‡ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π»ΠΎΠΊΠ°.

ВСс Ρ„Π°ΠΉΠ»Π° рассчитываСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° weight модуля Selector Π‘Π­Πœ-ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Bemer.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ порядок ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

  • block
  • block_mod
  • block_mod_val
  • block__elem
  • block_mod__elem
  • block_mod_val__elem
  • block__elem_mod
  • block__elem_mod_val
  • block_mod__elem_mod_val
  • block_mod_val__elem_mod_val

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π·Π²Ρ‘Π·Π΄ΠΎΡ‡Π΅ΠΊ вмСсто частСй Π‘Π­Πœ-ΠΈΠΌΡ‘Π½, Ρ‡Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для выдСлСния ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС. Π£ ΠΈΠΌΡ‘Π½ со Π·Π²Ρ‘Π·Π΄ΠΎΡ‡ΠΊΠ°ΠΌΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π½ΠΈΠΆΠ΅, Ρ‡Π΅ΠΌ Ρƒ ΠΈΠΌΡ‘Π½ Π±Π΅Π· Π·Π²Ρ‘Π·Π΄ΠΎΡ‡Π΅ΠΊ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΠΌΡ‘Π½ со Π·Π²Ρ‘Π·Π΄ΠΎΡ‡ΠΊΠ°ΠΌΠΈ: block_mod_*, block__* ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π»ΠΎΠΊΠ°

Bemaker ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ всС Ρ„Π°ΠΉΠ»Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π±Π»ΠΎΠΊΠ° Π²Π½Π΅ зависимости ΠΎΡ‚ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ влоТСнности.

НапримСр, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ элСмСнта ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ:

blocks/
    input/
        input.js
        __label/
            __label.js
        _size/
            _size_s.css

Π£Ρ€ΠΎΠ²Π½ΠΈ пСрСопрСдСлСния

Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ с Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Ρ‚ΠΎΠ³Π΄Π° эти Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ уровнями пСрСопрСдСлСния.

Бмысл Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ bemaker Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π±Π»ΠΎΠΊΠΎΠ² сначала с ΠΎΠ΄Π½ΠΎΠ³ΠΎ уровня, Π° Π·Π°Ρ‚Π΅ΠΌ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ порядкС.

Π­Ρ‚ΠΎ позволяСт ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ порядок наслСдования скриптов ΠΈ пСрСопрСдСлСния стилСй Π±Π»ΠΎΠΊΠΎΠ².

НапримСр, Π±Π»ΠΎΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½Ρ‹ ΠΏΠΎ уровням пСрСопрСдСлСния, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌ устройств ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

common/              // общая рСализация Π±Π»ΠΎΠΊΠΎΠ²
    input/
        input.css
phone/               // уточнСния для Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ²
    input/
        input.css    // пСрСопрСдСляСм стили для Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ²

Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ зависимостСй

НСкоторыС Π±Π»ΠΎΠΊΠΈ основаны Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ², для указания связСй ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ прСдусмотрСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ записи зависимостСй.

Зависимости Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² JSDoc-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ поиск зависимостСй осущСствляСтся Π² js-Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈ Ρ‚Π΅Π³Π°Ρ… @bemaker, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π³Π΄Π΅-Π»ΠΈΠ±ΠΎ Π² JSDoc. Π’ ΠΎΠ΄Π½ΠΎΠΌ Ρ‚Π΅Π³Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ.

НапримСр, Ρ„Π°ΠΉΠ» select.js Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±Π»ΠΎΠΊ select зависит ΠΎΡ‚ Π±Π»ΠΎΠΊΠΎΠ² button ΠΈ popup:

/**
 * @bemaker button
 * @bemaker popup
 */

Для измСнСния Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² с зависимостями ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ опция dependext.

Для измСнСния ΠΈΠΌΠ΅Π½ΠΈ JSDoc-Ρ‚Π΅Π³Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ опция jsdoctag.

ИспользованиС Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅

ПослС установки ΠΈΠ· npm Π±ΡƒΠ΄Π΅Ρ‚ доступСн исполняСмый Ρ„Π°ΠΉΠ»: ./node_modules/.bin/bemaker.

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹

Команда make

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ make запускаСтся сборка ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Для уточнСния Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ сборки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠΏΡ†ΠΈΠΈ.

ΠžΠΏΡ†ΠΈΠΈ

ΠžΠΏΡ†ΠΈΡ -h, --help

ВывСсти справку ΠΏΠΎ использованию bemaker Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅:

$ bemaker --help

ВывСсти справку ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ make:

$ bemaker make --help

ΠžΠΏΡ†ΠΈΡ -V, --version

ВывСсти ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ bemaker.

ΠžΠΏΡ†ΠΈΡ -c, --config <file=bemaker.json>

ΠžΠΏΡ†ΠΈΡ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», содСрТащий всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ сборки Π² JSON-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.

Если дирСктория, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выполняСтся запуск ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, содСрТит Ρ„Π°ΠΉΠ» bemaker.json β€” сборщик ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» автоматичСски.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ указываСтся ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»:

$ bemaker make -c path/to/myconfig.json

Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΏΡƒΡ‚ΠΈ Π΄ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² слСдуСт ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ располоТСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

ΠžΠΏΡ†ΠΈΠΈ, Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π½Π°Π΄ опциями ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

ΠžΠΏΡ†ΠΈΡ -d, --directories <dir,dirN>

ΠžΠΏΡ†ΠΈΡ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ с Π±Π»ΠΎΠΊΠ°ΠΌΠΈ.

Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ собСрёт Π±Π΅Π· указания располоТСния Π±Π»ΠΎΠΊΠΎΠ².

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π΄Π°Ρ‘Ρ‚ сборку Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ common ΠΈ phone:

$ bemaker make -d common,phone

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅:

{
    "directories": ["common", "phone"]
}

ΠžΠΏΡ†ΠΈΡ -O, --outname <name>

ΠžΠΏΡ†ΠΈΡ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ имя сохраняСмых Ρ„Π°ΠΉΠ»ΠΎΠ².

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ„Π°ΠΉΠ»Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π±Π΅Π· ΠΈΠΌΠ΅Π½ΠΈ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π΄Π°Ρ‘Ρ‚ сохраняСмым Ρ„Π°ΠΉΠ»Π°ΠΌ имя all:

$ bemaker make -O all

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅:

{
    "outname": "all"
}

ΠžΠΏΡ†ΠΈΡ -o, --outdir <dir=.>

ΠžΠΏΡ†ΠΈΡ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ для сохраняСмых Ρ„Π°ΠΉΠ»ΠΎΠ². Если указанная дирСктория Π½Π΅ сущСствуСт β€” ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ создана автоматичСски.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ„Π°ΠΉΠ»Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π΄Π°Ρ‘Ρ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ bundle для сохраняСмых Ρ„Π°ΠΉΠ»ΠΎΠ²:

$ bemaker make -o bundle

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅:

{
    "outdir": "bundle"
}

ΠžΠΏΡ†ΠΈΡ -e, --extensions <.ext,.extN>

ΠžΠΏΡ†ΠΈΡ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ для сохраняСмых Ρ„Π°ΠΉΠ»ΠΎΠ².

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ всС Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π΄Π°Ρ‘Ρ‚ ΠΊ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ .js ΠΈ .css:

$ bemaker make -e .js,.css

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅:

{
    "extensions": [".js", ".css"]
}

ΠžΠΏΡ†ΠΈΡ -b, --blocks <block,blockN>

ΠžΠΏΡ†ΠΈΡ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ имя ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² сборку Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ всС Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π΄Π°Ρ‘Ρ‚ ΠΊ сборкС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π»ΠΎΠΊΠΈ button ΠΈ input:

$ bemaker make -b button,input

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅:

{
    "blocks": ["button", "input"]
}

ΠžΠΏΡ†ΠΈΡ --dependext <ext=.js>

ΠžΠΏΡ†ΠΈΡ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сборщику слСдуСт ΠΈΡΠΊΠ°Ρ‚ΡŒ зависимости Π±Π»ΠΎΠΊΠΎΠ².

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ поиск зависимостСй осущСствляСтся Π² Ρ„Π°ΠΉΠ»Π°Ρ… с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .js.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π΄Π°Ρ‘Ρ‚ поиск зависимостСй Π² Ρ„Π°ΠΉΠ»Π°Ρ… .deps.js:

$ bemaker make --dependext .deps.js

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅:

{
    "dependext": ".deps.js"
}

ΠžΠΏΡ†ΠΈΡ --jsdoctag <tag=bemaker>

ΠžΠΏΡ†ΠΈΡ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ имя JSDoc-Ρ‚Π΅Π³Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ сборщику слСдуСт Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ зависимости Π±Π»ΠΎΠΊΠΎΠ².

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ зависимостСй осущСствляСтся Π² Ρ‚Π΅Π³Π΅ @bemaker.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π΄Π°Ρ‘Ρ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ зависимостСй Π² Ρ‚Π΅Π³Π΅ @deps:

$ bemaker make --jsdoctag deps

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅:

{
    "jsdoctag": "deps"
}

ΠžΠΏΡ†ΠΈΡ --no-before

ΠžΠΏΡ†ΠΈΡ отмСняСт установку коммСнтария ΠΏΠ΅Ρ€Π΅Π΄ содСрТимым ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² собранном Ρ„Π°ΠΉΠ»Π΅ ΠΏΠ΅Ρ€Π΅Π΄ содСрТимым ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° устанавливаСтся Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ:

/* before: blocks/button/button.css */

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ отмСняСт установку коммСнтария:

$ bemaker make --no-before

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅:

{
    "before": false
}

ΠžΠΏΡ†ΠΈΡ --no-after

ΠžΠΏΡ†ΠΈΡ отмСняСт установку коммСнтария послС содСрТимого ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² собранном Ρ„Π°ΠΉΠ»Π΅ послС содСрТимого ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° устанавливаСтся Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ:

/* after: blocks/button/button.css */

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ отмСняСт установку коммСнтария:

$ bemaker make --no-after

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅:

{
    "after": false
}

ΠžΠΏΡ†ΠΈΡ -v, --verbose <mod,modN>

Π’ процСссС сборки выводятся Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ сообщСний.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ выводятся всС Ρ‚ΠΈΠΏΡ‹ сообщСний. ΠžΠΏΡ†ΠΈΡ verbose позволяСт Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ².

Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ сообщСния дСлятся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹:

  • log β€” информация ΠΎ процСссС сборки (синим Ρ†Π²Π΅Ρ‚ΠΎΠΌ)
  • info β€” сообщСниС ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ сборки (Π·Π΅Π»Ρ‘Π½Ρ‹ΠΌ)
  • warn β€” прСдупрСТдСния (ΠΆΡ‘Π»Ρ‚Ρ‹ΠΌ)
  • error β€” ошибки (красным)

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ прСдупрСТдСния ΠΈ ошибки:

$ bemaker make -v warn,error

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠΏΡ†ΠΈΠΈ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅:

{
    "verbose": ["warn", "error"]
}

FAQs

Package last updated on 26 Apr 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts