0.1.2 • Published 3 years ago

vite-plugin-server v0.1.2

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

Vite-plugin-server

This vite plugin allows developers to develop a backend server with NodeJS or Deno in the same codebase as the frontend code and get HMR!

Note: This is more or less a hack! Working of this plugin can change from one minor vite version to the next! Please report Bugs! This Plugin is in a alpha stage so expect breaking changes!

Install

Install this plugin with

yarn add -D vite-plugin-server

In vite.config.js import it like this:

import { defineConfig } from "vite";
import server from 'vite-plugin-server';

export default defineConfig(({command, mode}) => ({
  build:
    command === "build" && mode === "server"
      ? {
          lib: {
            entry: "./path/to/server/entry.ts",
            formats: ["es"],
            fileName: () => "server.mjs",
          },
          outDir: "server",
        }
      : {},
  plugins: [
    server()
  ]
}))

Deno

For Deno if you did the install step you are ready to go! Just start the vite server and after that start deno with:

deno run --allow-net -r http://localhost:3000/path/to/deno/entry.ts

If the HMR runs into a problem and wants to "reload" the process is ended and you have to manualy restart it or use a tool for that.

NodeJS

NodeJS is a bit complexer you the latest version (17.4). The needed API is not stable! So this can stop working with a new node relase!

Create a extra file called for example entry.mjs and add the folowing code:

import 'http://localhost:3000/path/to/node/entry.ts'

Start it with

node  --experimental-loader vite-plugin-server/node entry.mjs

Build

The server can be build with vite build --mode server

There is currently a bug where some dev code is included. So this is currently not production ready.

HMR

There are currently no plugins that enable HMR for different use cases. I will work on a for a Deno REST-API with oak but you basicly have to implement it on your own. Feel free to share your plugins!

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago

0.0.0

3 years ago