Bỏ qua đến nội dung chính
Về trang chủ
tools-cli Tech 5 phút đọc

Deno Desktop: Biến Dự Án Web & TypeScript Hiện Đại Thành Ứng Dụng Desktop Gốc Siêu Nhẹ! 🚀

Với Deno v2.9.0, `deno desktop` mang đến khả năng biên dịch mọi dự án Deno, từ file TypeScript đơn lẻ đến ứng dụng web toàn diện, thành một ứng dụng desktop gốc tự chứa, cung cấp giải pháp thay thế mạnh mẽ và hiệu quả hơn Electron hay Tauri.

Tier 1 · nguồn 99% độ tin cậy Auto-priority
Nguồn gốc docs.deno.com

Deno Desktop: Biến Dự Án Web & TypeScript Hiện Đại Thành Ứng Dụng Desktop Gốc Siêu Nhẹ! 🚀

Deno v2.9.0 vừa ra mắt deno desktop, một lệnh CLI và khuôn khổ runtime đột phá, cho phép biến mọi dự án Deno – từ một tệp TypeScript hoặc JavaScript đơn giản đến các ứng dụng web hiện đại đầy đủ tính năng (sử dụng Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start, hoặc Vite SSR) – thành một tệp thực thi desktop gốc duy nhất, tự chứa.

Tính năng này giới thiệu một lựa chọn thay thế mạnh mẽ cho các ông lớn đã có tên tuổi như Electron và Tauri, bằng cách cung cấp tích hợp runtime sâu rộng, biên dịch chéo nhị phân (binary cross-compilation), và trải nghiệm phát triển vượt trội ngay từ đầu. Điều này hứa hẹn thay đổi cục diện phát triển ứng dụng desktop hiện nay. 💡

---

Tại Sao Deno Desktop Là Một "Kẻ Thay Đổi Cuộc Chơi"? 🎮

Trong khi các framework như Electron đã cung cấp sức mạnh cho nhiều ứng dụng desktop phổ biến (như VS Code và Slack), chúng lại mắc phải vấn đề về dung lượng bộ nhớ khổng lồ và các tệp nhị phân cồng kềnh. Lý do là chúng đóng gói một trình duyệt Chromium hoàn chỉnh và một phiên bản Node.js nặng nề cho mỗi ứng dụng. Các lựa chọn thay thế mới hơn như Tauri đã giảm thiểu điều này bằng cách sử dụng WebView gốc của hệ điều hành, nhưng lại yêu cầu nhà phát triển viết logic backend bằng Rust. 😬

deno desktop đã tìm thấy điểm cân bằng hoàn hảo:

1. Siêu nhẹ theo mặc định: Theo mặc định, nó sử dụng WebView gốc của hệ điều hành, giúp kích thước tệp nhị phân cực kỳ nhỏ gọn. 2. Tương thích hoàn toàn với Node.js & npm: Bạn vẫn có quyền truy cập vào toàn bộ hệ sinh thái gói npm thông qua lớp tương thích Node.js gốc của Deno, không cần cấu hình hoặc đóng gói phức tạp. 3. Tùy chọn backend Chromium (CEF): Khi bạn cần khả năng hiển thị giống hệt nhau, pixel-perfect trên macOS, Windows và Linux, bạn có thể chọn đóng gói backend Chromium Embedded Framework (CEF). 4. Không độ trễ IPC nhờ In-process Bindings: Không giống như giao tiếp liên tiến trình (IPC) dựa trên socket được sử dụng trong các framework khác, giao tiếp giữa webview và backend của Deno diễn ra thông qua các kênh in-process được tối ưu hóa cao. Dữ liệu được tuần tự hóa hiệu quả mà không cần vượt qua ranh giới tiến trình. ⚡ 5. Không cần thay đổi mã cho các Web Framework: deno desktop tự động phát hiện các framework SSR (Server-Side Rendering) lớn như Next.js, Astro, Remix và SvelteKit. Chỉ cần trỏ CLI vào dự án web của bạn, nó sẽ tự động khởi động máy chủ sản xuất ở chế độ release hoặc máy chủ phát triển với tính năng hot reload khi sử dụng --hmr. ✨

---

Xin Chào, Deno Desktop! 👋

Tạo một ứng dụng desktop với Deno đơn giản như viết một tệp TypeScript duy nhất.

1. Tạo một máy chủ đơn giản (`main.ts`):

typescript Deno.serve(() => { return new Response("<h1>Chào mừng từ Deno Desktop!</h1>", { headers: { "content-type": "text/html" }, }); });

2. Biên dịch chỉ với một lệnh duy nhất:

bash deno desktop main.ts

Deno sẽ tự động biên dịch mã của bạn, đóng gói runtime Deno, tải xuống backend webview cần thiết và đóng gói tất cả vào một tệp thực thi duy nhất. Chạy nó trực tiếp:

bash ./main # macOS / Linux .\main.exe # Windows

---

Các Tính Năng Gốc Phong Phú & Cấu Hình Nâng Cao ⚙️

Hầu hết các cài đặt có thể nằm trong khối desktop của deno.json thay vì được truyền dưới dạng cờ CLI. Ví dụ sau minh họa cấu hình schema đầy đủ cho Deno Desktop:

json { "desktop": { "app": { "name": "MyDesktopApp", "identifier": "com.example.myapp", "icons": { "macos": "./icons/icon.icns", "windows": "./icons/icon.ico", "linux": "./icons/icon.png" } }, "backend": "cef", "output": { "macos": "./dist/macos", "windows": "./dist/windows", "linux": "./dist/linux" }, "release": { "baseUrl": "https://updates.example.com" }, "errorReporting": { "url": "https://errors.example.com/report" } } }

Khả Năng Hệ Thống Nâng Cao:

* API Deno.BrowserWindow: Kiểm soát vòng đời cửa sổ, tạo nhiều cửa sổ, lắng nghe sự kiện cửa sổ và cấu hình kích thước hoặc khung cửa sổ. * Tự động cập nhật (Auto-Updates) ngay lập tức: Deno có tính năng tự động cập nhật binary diff tích hợp. Chỉ cần lưu trữ một tệp manifest latest.json và các bản vá bsdiff. Deno sẽ tự động thăm dò, áp dụng cập nhật và khôi phục nếu phiên bản mới không khởi chạy thành công. ✨ * Tích hợp OS Gốc: Hỗ trợ đầy đủ menu gốc (menu ứng dụng và menu ngữ cảnh), biểu tượng khay hệ thống và dock (bao gồm số huy hiệu trên macOS), hộp thoại (alert(), confirm(), prompt()) và thông báo desktop gốc. * Công cụ Phát triển Thống nhất: Các cờ --inspect--inspect-wait gắn một trình gỡ lỗi vào cả runtime Deno backend và webview frontend (hoặc trình kết xuất CEF), cho phép gỡ lỗi công cụ phát triển đầy đủ từ một phiên bản duy nhất. * Biên dịch chéo mọi nơi (Cross-Compile Anywhere): Xây dựng các tệp thực thi macOS, Windows và Linux từ bất kỳ máy phát triển nào. Các backend được tải xuống động theo yêu cầu thay vì yêu cầu bộ công cụ biên dịch Rust/C++ cục bộ. 🌎

Đã đọc hết tin tools-cli hiện có.