New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

jsb

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jsb

Простой сборщик JavaScript-файлов.

latest
npmnpm
Version
0.0.1
Version published
Maintainers
1
Created
Source

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.

Если путь к файлу начинается с /, он рассматривается как абсолютный путь от корня файловой системы.

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

FAQs

Package last updated on 27 Nov 2013

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