jsb v0.0.1
JSB
Простой сборщик JavaScript-файлов.
Описание
JSB предоставляет простой интерфейс для быстрой сборки и минификации JavaScript-файлов, включая следующие особенности:
- Компиляция нескольких исходных файлов в один.
- Сжатие исходного кода и удаление комментариев для уменьшения объема файла (с использованием UnglifyJS).
- Инструкции
#importи#include, которые позволяют импортировать файл как модуль и включать содержимое файла без изменений.
Установка
npm install jsbОсновной файл
При сборке необходимо указать JSB корневой файл, с которого начинается сборка. По умолчанию это файл main.js в текущей рабочей директории.
Данный файл не является JSB-модулем, но допускает использование инструкций #import и #include для импорта модулей и включения файлов исходного кода.
CLI
Для сборки из командной строки необходимо использовать команду 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
Если в директории сборки находится файл build.json, JSB попытается импортировать его и отыскать в нем пераметры сборки:
{
"input": "main.js",
"output": "index.js",
"min": true,
"root": "."
}API
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 модуль
JSB модуль представляет собой обычный JavaScript-файл с некоторыми особенностями:
- Модуль имеет собственную область видимости, не засоряя глобальное пространство имен.
- Внутри JSB-модуля доступны несколько инструкций и локальных переменных:
- Инструкция
#includeвключает содержимое другого исходного файла в текущий модуль без изменений. - Инструкция
#importимпортирует другой файл как JSB-модуль, в результате чего становится возможным присваивание результата данной инструкции локальной переменной. - Переменная
moduleссылается на объект, представляющий текущий модуль. Для экспорта данных и функций можно присваивать свойства данному объекту.
- Инструкция
Инструкция #include
Инструкция #include позволяет включить произвольный файл исходного кода в текущий модуль:
#include('./lib/jquery.js');При сборке данная инструкция заменяется содержимым указанного файла.
Инструкция #import
Инструкция #import импортирует указанный файл исходного кода как JSB-модуль, который также может включать инструкции #include и #import:
var model = #import('./models/model.js');При сборке содержимое указанного файла упаковывается в анонимную самовызывающуюся функцию и помещается на место инструкции #import. При выполнении кода в данную функцию передается один аргумент — переменная module, которая ссылается на пустой объект.
Переменная 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.
Если путь к файлу начинается с /, он рассматривается как абсолютный путь от корня файловой системы.
В противном случае указанный путь к файлу рассматривается как относительный путь от директории, в которой расположен файл, содержащий инструкцию.
12 years ago