Bun: Более быстрая среда выполнения JavaScript для пользователей Linux

Bun — это современная среда выполнения JavaScript, предназначенная для упрощения и ускорения разработки приложений на JavaScript и TypeScript. В отличие от традиционных сред выполнения, Bun объединяет несколько инструментов в единый согласованный пакет, включая сборщик, средство запуска тестов и Node.js-совместимый менеджер пакетов.
Основные характеристики Bun:
- Высокая производительность: Bun создан с учётом требований к скорости. Расширяя JavaScriptCore — движок, на котором работает Safari, — он обеспечивает быстрый запуск и эффективное выполнение ваших приложений.
- Полный набор инструментов: с Bun вы получаете универсальное решение, включающее в себя сборщик для упаковки кода, средство для запуска тестов для обеспечения надёжности кода и менеджер пакетов, совместимый с Node.js, что упрощает процесс разработки.
- Node.js Совместимость: Bun призван стать заменой Node.js, реализуя алгоритм разрешения модулей Node и поддерживая встроенные модули, такие как fs и path.
- Первоклассная поддержка TypeScript и JSX: Bun позволяет вам выполнять
.tsи.tsxфайлы напрямую, соблюдая вашиtsconfig.jsonнастройки. Она также внутренне преобразует синтаксис JSX в JavaScript, используя React по умолчанию, но поддерживая пользовательские преобразования JSX.
Установка Bun в Linux
Для установки Bun требуется распаковать пакет, поэтому используйте менеджер пакетов вашего дистрибутива, чтобы установить его, как показано.
sudo apt install unzip [On Debian, Ubuntu and Mint] sudo dnf install unzip [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] sudo emerge -a sys-apps/unzip [On Gentoo Linux] sudo apk add unzip [On Alpine Linux] sudo pacman -S unzip [On Arch Linux] sudo zypper install unzip [On OpenSUSE] sudo pkg install unzip [On FreeBSD]
Затем с помощью команды curl загрузите и выполните сценарий установки Bun, который загрузит двоичный файл Bun и поместит его в системную переменную PATH, сделав команду bun доступной во всей системе.
curl -fsSL https://bun.sh/install | bash
Начало работы с Bun в Linux
После установки Bun вы можете быстро создать новый каталог проекта и начать создавать приложения.
mkdir my-bun-app cd my-bun-app
Затем инициализируйте проект с помощью Bun, который задаст вам несколько вопросов для настройки вашего проекта. Вы можете нажать Enter, чтобы принять ответы по умолчанию. Bun создаст необходимые файлы, такие как package.json, index.ts, .gitignore и tsconfig.json.
bun init
Создайте HTTP-сервер
Откройте файл index.ts и добавьте следующий код для создания простого HTTP-сервера:
const server = Bun.serve({
port: 3000,
fetch(request) {
return new Response("Welcome to Bun!");
},
});
console.log(`Listening on http://localhost:${server.port}`);
Теперь запустите сервер с помощью:
bun run index.ts
Вы должны увидеть это сообщение Listening on http://localhost:3000.
Откройте свой браузер и перейдите по ссылкеhttp://localhost:3000, чтобы просмотреть ответ от вашего сервера.
Управление пакетами с помощью Bun
Чтобы добавить новый пакет в свой проект, используйте следующую команду, которая установит указанный пакет и соответствующим образом обновит package.json в вашем проекте. Bun управляет зависимостями в каталоге node_modules так же, как другие менеджеры пакетов, обеспечивая совместимость с существующими Node.js проектами.
bun add figlet
Обновите index.ts, чтобы использовать figlet в обработчике выборки.
import figlet from "figlet";
const server = Bun.serve({
port: 3000,
fetch(request) {
const message = figlet.textSync("Welcome to Bun!", {
horizontalLayout: "default",
verticalLayout: "default",
});
return new Response(message, {
headers: { "Content-Type": "text/plain" },
});
},
});
console.log(`Listening on http://localhost:${server.port}`);
Перезапустите сервер и обновите страницу, чтобы увидеть новый баннер в формате ASCII.
Если вам нужно удалить Bun из вашей системы, используйте следующую команду.
rm -rf ~/.bun
Заключение
Bun — это мощная и эффективная среда выполнения JavaScript, которая упрощает процесс разработки за счёт интеграции нескольких инструментов в единую платформу.
Высокая производительность, совместимость с Node.js и первоклассная поддержка TypeScript и JSX делают его идеальным выбором для разработчиков, которым нужен современный и удобный инструмент.
Редактор: AndreyEx

