Библиотека распространяется через npm-пакет sjcl и
устанавливается стандартным способом через менеджер пакетов Node.js.
npm install sjcl
После установки пакет добавляется в node_modules, а
также фиксируется в package.json в разделе
зависимостей:
{
"dependencies": {
"sjcl": "^1.0.8"
}
}
В большинстве современных проектов пакет подтягивается автоматически системой сборки и доступен для импорта как обычная зависимость.
При использовании Yarn процесс эквивалентен npm-установке, но выполняется через команду:
yarn add sjcl
После выполнения зависимости фиксируются в package.json,
а также обновляется файл yarn.lock, обеспечивающий
детерминированную сборку зависимостей в разных окружениях.
После установки библиотека становится доступной для импорта в JavaScript-коде.
const sjcl = require("sjcl");
В таком варианте подключается весь набор криптографических функций библиотеки.
При использовании современного синтаксиса модулей:
import sjcl from "sjcl";
В зависимости от сборщика и конфигурации окружения импорт может работать как с полным объектом библиотеки, так и с обёрткой совместимости CommonJS.
SJCL изначально разрабатывалась как библиотека для браузера, поэтому в современных сборках через Webpack, Vite или Rollup она подключается как обычный npm-модуль.
Пример использования в модульном коде:
import sjcl from "sjcl";
const hash = sjcl.hash.sha256.hash("data");
console.log(hash);
При использовании Webpack библиотека обычно корректно резолвится без дополнительной конфигурации:
module.exports = {
resolve: {
fallback: {
crypto: false
}
}
};
В некоторых конфигурациях может потребоваться отключение Node.js-полифиллов, если проект ориентирован только на браузер.
Vite обрабатывает пакет как CommonJS-зависимость, автоматически преобразуя его в ESM:
import sjcl from "sjcl";
Дополнительная настройка обычно не требуется.
При использовании Rollup может потребоваться подключение плагина для CommonJS:
import commonjs from "@rollup/plugin-commonjs";
И добавление его в конфигурацию:
export default {
plugins: [commonjs()]
};
SJCL распространяется в формате, ориентированном на CommonJS, поэтому
при ESM-импорте может происходить обёртка всего объекта библиотеки в
default.
Типичный случай:
import sjcl from "sjcl";
const encrypted = sjcl.encrypt("password", "data");
При необходимости можно использовать деструктуризацию:
const { encrypt, decrypt } = sjcl;
После установки и импорта проверяется доступность основных модулей:
import sjcl from "sjcl";
console.log(typeof sjcl.hash.sha256); // function
console.log(typeof sjcl.encrypt); // function
Если вывод соответствует ожидаемым типам, библиотека подключена корректно и готова к использованию в криптографических операциях.
Пакет sjcl на npm часто обновляется незначительно,
поскольку библиотека считается стабильной. Поэтому диапазон версий
обычно фиксируется как:
"sjcl": "^1.0.8"
Обновления в пределах minor-версий редко затрагивают API, что упрощает сопровождение проектов.