Библиотека Universal Router распространяется как пакет для экосистемы Node.js и устанавливается через менеджеры пакетов. Yarn обеспечивает детерминированную установку зависимостей, кэширование и более быструю работу по сравнению с npm, что особенно важно при разработке сложных dApp и сервисов взаимодействия с блокчейнами.
Перед установкой необходимо убедиться в наличии следующих компонентов:
package.json)Проверка версий:
node -v
yarn -v
Если проект ещё не инициализирован:
yarn init -y
Это создаст базовый package.json, необходимый для
управления зависимостями.
Установка производится стандартной командой добавления зависимости:
yarn add @uniswap/universal-router
После выполнения команды в проекте появятся:
dependencies внутри
package.jsonyarn.lock для фиксации версийnode_modulesUniversal Router тесно взаимодействует с Ethereum-инфраструктурой, поэтому почти всегда требуется установка сопутствующих библиотек:
yarn add ethers
В некоторых сценариях также используются:
yarn add viem
или
yarn add web3
Выбор зависит от архитектуры проекта и предпочтений в работе с RPC.
После установки важно убедиться, что пакет доступен для импорта:
import { UniversalRouter } from '@uniswap/universal-router'
Если используется CommonJS:
const { UniversalRouter } = require('@uniswap/universal-router')
Ошибки импорта обычно связаны с:
type: "module" в
package.jsonВ монорепозиториях установка может выполняться в корневом workspace:
yarn workspace my-app add @uniswap/universal-router
Это позволяет:
В Yarn 3+ может использоваться режим Plug’n’Play без папки
node_modules. В этом случае важно учитывать:
yarn dlx @yarnpkg/sdks vscode
Если возникают проблемы с резолвингом модулей, возможен возврат к классической схеме:
yarn config set nodeLinker node-modules
Для стабильности рекомендуется фиксировать версию:
yarn add @uniswap/universal-router@latest
или конкретную:
yarn add @uniswap/universal-router@1.4.0
Это предотвращает неожиданные изменения API при автоматических обновлениях.
При возникновении ошибок полезно выполнить полную переустановку:
rm -rf node_modules yarn.lock
yarn install
Это устраняет:
Universal Router поддерживает TypeScript. Для полноценной работы:
yarn add -D typescript @types/node
Проверка наличия типов:
@types/... не требуетсяОшибка несовместимости зависимостей
Решение:
yarn install --check-files
Проблемы с ESM/CJS
Настройка в package.json:
{
"type": "module"
}
или использование .cjs/.mjs расширений.
Конфликты версий ethers
Universal Router может требовать определённую версию:
yarn add ethers@5
или
yarn add ethers@6
в зависимости от версии роутера.
Ожидаемая структура:
project/
├── node_modules/
├── package.json
├── yarn.lock
└── src/
В package.json должна появиться запись:
"dependencies": {
"@uniswap/universal-router": "^x.x.x"
}
yarn.lock) в системе контроля
версийПосле установки библиотека готова к:
Дальнейшая работа включает настройку клиента, ABI и взаимодействие с сетью.