
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
Простой сборщик JavaScript-файлов.
JSB предоставляет простой интерфейс для быстрой сборки и минификации JavaScript-файлов, включая следующие особенности:
#import и #include, которые позволяют импортировать файл как модуль и включать содержимое файла без изменений.npm install jsb
При сборке необходимо указать JSB корневой файл, с которого начинается сборка. По умолчанию это файл main.js в текущей рабочей директории.
Данный файл не является JSB-модулем, но допускает использование инструкций #import и #include для импорта модулей и включения файлов исходного кода.
Для сборки из командной строки необходимо использовать команду jsb:
jsb
Данная команда без аргументов попытается отыскать в текущей рабочей директории файл main.js, скомпилировать его и минифицировать, создав в текущей директории файл index.js, представляющий скомпилированный файл исходного кода.
Для указания параметров сборки необходимо использовать следующие аргументы:
-i, --input: Указывает начальный файл. По умолчанию — main.js.-o, --output: Указывает итоговый файл сборки. По умолчанию — index.js.-m, --min: Указывает на необходимость минификации исходного кода и может иметь значения true или false. По умолчанию — true.-r, --root: Указывает корневую директорию сборки, относительно которой будет выполняться поиск файлов, включаемых инструкциями #include и #import. По умолчанию — текущий рабочий каталог.Если в директории сборки находится файл build.json, JSB попытается импортировать его и отыскать в нем пераметры сборки:
{
"input": "main.js",
"output": "index.js",
"min": true,
"root": "."
}
var jsb = require('jsb');
// Производит сборку проекта
jsb.build({
input: 'main.js',
output: 'index.js',
min: true,
root: __dirname + '/static/js'
});
// Возвращает скомпилированный код сборки
jsb.buildFile(filename, {
input: 'main.js',
output: 'index.js',
min: true,
root: __dirname + '/static/js'
});
JSB модуль представляет собой обычный JavaScript-файл с некоторыми особенностями:
#include включает содержимое другого исходного файла в текущий модуль без изменений.#import импортирует другой файл как JSB-модуль, в результате чего становится возможным присваивание результата данной инструкции локальной переменной.module ссылается на объект, представляющий текущий модуль. Для экспорта данных и функций можно присваивать свойства данному объекту.Инструкция #include позволяет включить произвольный файл исходного кода в текущий модуль:
#include('./lib/jquery.js');
При сборке данная инструкция заменяется содержимым указанного файла.
Инструкция #import импортирует указанный файл исходного кода как JSB-модуль, который также может включать инструкции #include и #import:
var model = #import('./models/model.js');
При сборке содержимое указанного файла упаковывается в анонимную самовызывающуюся функцию и помещается на место инструкции #import. При выполнении кода в данную функцию передается один аргумент — переменная module, которая ссылается на пустой объект.
По умолчанию внутри JSB-модуля доступна одна локальная переменная module, которая ссылается на пустой объект текущего модуля. Для экспорта значения или метода необходимо присвоить соответствующее свойство объекту module.
Файл person.js:
module.name = 'Tom Riddle';
module.age = '17';
Файл main.js:
var person = #import('./person.js');
console.log(person.name); // Tom Riddle
console.log(person.age); // 17
Если путь к файлу начинается с //, он рассматривается как относительный путь от корневой директории сборки. То есть, в инструкции #include('//jquery.js') будет включен файл /build_directory/jquery.js.
Если путь к файлу начинается с /, он рассматривается как абсолютный путь от корня файловой системы.
В противном случае указанный путь к файлу рассматривается как относительный путь от директории, в которой расположен файл, содержащий инструкцию.
FAQs
Простой сборщик JavaScript-файлов.
We found that jsb demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

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.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.