برنامه نویسی

استفاده از Compile/ Bund برای جاسازی یک برنامه Express/ Vite/ Vue

چرا؟

خوب ، بنابراین شما در حال توسعه یک ابزار داخلی با استفاده از JS … یا پروژه برای مشتری است. شما می خواهید یک باینری 100 ٪ خود را برای آنها ارسال کنید ، که آنها فقط اجرا می شوند ، تا ابزار را راه اندازی کنند … هیچ مرحله نصب برای مشتری ، بدون نسخه اشکال زدایی از Bun / کتابخانه ها … شما همچنین می خواهید برای جلوگیری از توزیع کد منبع ، از توانایی اساسی استفاده کنید.

https://www.youtube.com/watch؟v=_rhtuwfgs5o

بندر/کامپایلر

BUN این مرحله ساخت را کاملاً خوب انجام می دهد ، https://bun.sh/docs/bundler/exidebables اما دارای چند مسئله کوچک است که مربوط به بسته بندی پرونده ها است ، که می تواند به صورت محلی ارائه شود.

مسئله این است که توانایی جاسازی شده برای Bun …. در بهترین حالت در بتا است و به نظر می رسد چند مورد وجود دارد. همچنین بازگرداندن پرونده ها برای ارائه آنها با اکسپرس بسیار دشوار است.

بنابراین راه حل؟

1) پروژه Vite خود را بسازید

vite build
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

2) خود را بگیرید /dist دایرکتوری ، و ساخت یک سیستم فایل مجازی!

ما می توانیم از https://github.com/seveibar/make-vfs/ استفاده کنیم تا کل دایرکتوری Dist خود را بگیریم و آن را به عنوان یک پرونده .js مجدداً بازپرداخت کنیم. این می تواند یک پرونده نسبتاً سنگین ایجاد کند ، اما همانطور که ما به هر حال همه چیز را به عنوان باینری توزیع می کنیم ، مهم نیست!

bunx make-vfs --dir ./dist --content-format string --outfile ./dist/client-bundle-vfs.js


حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

3) از Express برای بارگیری و سپس خدمت VFS خود استفاده کنید: (به repo مراجعه کنید)

import staticRoutes from "../../dist/client-bundle-vfs.js";
import { lookup } from "es-mime-types"
import express from "express";
import routes from "./routes.js";

const app = express();
// serve express routes
app.use(routes);
// serve the static bundled files
app.use((req, res, next) => {
  const url = new URL(req.url, `http://${req.headers.host}`);
  const path = url.pathname;
  const normalizedPath = path.replace(/^\//, "").replace(/\/$/, "");
  if (staticRoutes[normalizedPath]) {
    let mimeType = lookup(normalizedPath);
    return res.status(200).type(mimeType).send(staticRoutes[normalizedPath]);
  }
  next();
});

// Fallback to assist vue-router
app.use((req, res) => {
  return res.status(200).type("text/html").send(staticRoutes["index.html"]);
});


app.listen(3002, () => {
  console.log("Server is running on http://localhost:3002");
});
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

4) کاربرد نهایی خود را بسازید ، زیرا برنامه VFS را مصرف می کند ، همه چیز همراه است.

bun build ./src/server/main-compile.js --compile --outfile myServer
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

Vite-Express-Bun-Compiled نحوه تهیه یک برنامه Vite-Vue را با استفاده از VFS نشان می دهد

این مخزن الگویی برای Vite + Vue 3 + Bun + VFS (سیستم فایل مجازی) است

این یک الگوی ساده برای شروع کار با Vue 3 و Vite است که با استفاده از Bun به عنوان مدیر بسته و VFS برای عملکرد سیستم فایل.

این طراحی شده است تا به شما امکان دهد برنامه Vue 3 خود را با Vite بسته و آن را با استفاده از Bun اجرا کنید ، در حالی که یک روش ساده برای مدیریت پرونده های خود با استفاده از VFS نیز فراهم می کند.

این اجازه می دهد تا یک برنامه مستقل بدون نیاز به سرور اجرا شود و استقرار و به اشتراک گذاری برنامه خود را آسان می کند.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا