Перейти к содержимому
Документация на русском

Перевод страницы с английского оригинала. При расхождениях приоритет имеет английская версия.

Установка

DaloyJS рассчитан на Node.js 24 LTS или Node.js 26 и новее (engines.node: ^24.0.0 || >=26.0.0) и распространяется через публичный реестр npm как @daloyjs/core. У пакета нет peer-зависимостей, поэтому npm, yarn, pnpm и bun устанавливают его напрямую. Из соображений безопасности цепочки поставок мы рекомендуем pnpm вместе с усиленными настройками .npmrc, приведёнными ниже, но это не обязательно. Поле engines.pnpm в package.json носит справочный характер, а engines.node указывает поддерживаемый рантайм и в зависимости от менеджера пакетов и настройки engine-strict может выдать предупреждение или ошибку.

Два пути
  1. 01быстрее всегоСоздать проектpnpm create daloy@latest
  2. 02илиУстановить в существующий проектpnpm add @daloyjs/core zod
  3. 03усилитьДобавить настройки .npmrcstrict-peer-dependencies, замороженный lockfile
  4. 04проверитьПроверить импортnode -e import('@daloyjs/core')
Создайте защищённый проект одной командой или добавьте пакет без зависимостей в существующий проект, затем положите усиленный .npmrc и убедитесь, что импорт разрешается.

Самый быстрый путь: создайте проект

Воспользуйтесь официальным генератором: одной командой он настроит усиленный .npmrc, строгий TypeScript и рабочий маршрут.

Ссылки на пакеты: create-daloy в npm и @daloyjs/core в npm.

bash
# выберите один менеджер пакетов
pnpm create daloy@latest my-api
npm  create daloy@latest my-api
yarn create daloy           my-api
bun  create daloy           my-api

Шаблоны и флаги описаны в Scaffold a project (на английском).

Или установите в существующий проект

Требования

  • Node.js 24 LTS, либо 26.0.0 и новее (Node.js 25 не поддерживается).
  • Менеджер пакетов. Подойдёт любой из перечисленных; для защиты цепочки поставок рекомендуется pnpm 11.x или новее, но npm, yarn и bun без проблем устанавливают @daloyjs/core, ведь у пакета нет peer-зависимостей.

Чтобы включить pnpm через Corepack:

bash
corepack enable
corepack prepare pnpm@11.1.3 --activate
pnpm --version

Установите DaloyJS

bash
pnpm add @daloyjs/core zod

Необязательно, только если вы хотите генерировать типизированный SDK:

bash
pnpm add -D typescript @hey-api/openapi-ts prettier

Пакет фреймворка, опубликованный в npm: @daloyjs/core.

Усиленные настройки установки

В pnpm 11+ размещайте настройки цепочки поставок в pnpm-workspace.yaml в корне проекта (ключи в camelCase; pnpm 11 читает этот файл даже в проекте из одного пакета). pnpm 11 игнорирует эти настройки в .npmrc, поэтому конфигурация только через .npmrc остаётся без периода ожидания и без политики скриптов.

pnpm-workspace.yamlyaml
minimumReleaseAge: 1440
blockExoticSubdeps: true
ignoreScripts: true
strictPeerDependencies: true
verifyStoreIntegrity: true
preferFrozenLockfile: true
autoInstallPeers: true

Для npm и более старых версий pnpm продублируйте те же значения в .npmrc:

.npmrcini
auto-install-peers=true
strict-peer-dependencies=true
prefer-frozen-lockfile=true
verify-store-integrity=true
minimum-release-age=1440
ignore-scripts=true

Период ожидания и ignoreScripts снижают риски цепочки поставок для этих установок, но не останавливают все атаки. ignoreScripts блокирует вредоносную нагрузку в скриптах установки, но не код, выполняемый при импорте пакета, а 24-часовой период ожидания защищает лишь от компрометаций, обнаруженных менее чем за сутки.

Подробные причины изложены в разделе Безопасность и в руководстве о мотивации pnpm.

Проверьте установку

Запустите это из корня проекта после установки; команда работает одинаково в pnpm, npm, yarn и bun, потому что вызывает node напрямую:

bash
node -e "import('@daloyjs/core').then(m => console.log('DaloyJS ok ->', Object.keys(m).slice(0, 6)))"

Следующий шаг

Последнее обновление: