Skip to content

EsJS + Express

  1. Crear proyecto Node.js:
bash
npm init -y
bash
pnpm init -y
bash
yarn init -y
bash
bun init -y
  • Estructura de carpetas recomendada:

    plaintext
    .
    ├── src
    │   ├── app.esjs
    │   └── otro-archivo.esjs
    ├── vite.config.js
    └── package.json
    • src/app.esjs: Archivo principal de la aplicación.
    • src/otro-archivo.esjs: Módulo EsJS.
    • vite.config.js: Archivo de configuración de Vite.
  1. Instalar dependencias:
  • Dependencias de desarrollo
    bash
    npm install vite vavite @es-js/vite-plugin-esjs --save-dev
    bash
    pnpm install vite vavite @es-js/vite-plugin-esjs --save-dev
    bash
    yarn add vite vavite @es-js/vite-plugin-esjs --save-dev
    bash
    bun add vite vavite @es-js/vite-plugin-esjs --save-dev
  • Dependencias de producción
    bash
    npm install express
    bash
    pnpm install express
    bash
    yarn add express
    bash
    bun add express
  1. Crear archivo vite.config.js con la siguiente configuración:
js
import { URL, fileURLToPath } from 'node:url'
import { defineConfig } from 'vite'
import EsJS from '@es-js/vite-plugin-esjs'
import { vavite } from "vavite";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    // https://github.com/es-js/esjs
    EsJS(),

    // https://github.com/cyco130/vavite
    vavite({
      serverEntry: './src/app.esjs',
    }),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
    },
    extensions: [
      '.js',
      '.json',
      '.jsx',
      '.mjs',
      '.ts',
      '.tsx',
      '.esjs',
    ],
  },
  build: {
    outDir: './compilado'
  },
  server: {
    port: 4500 // Acá puedes cambiar el puerto del servidor de desarrollo (opcional)
  }
})
  1. Crear archivo src/app.esjs con el siguiente contenido:
esjs
importar express desde 'express'
importar httpDevServer desde 'vavite/http-dev-server'

const servidor = express()
mut puerto = process.env.PORT || 4500

servidor.use('/', (req, res) => {
  res.send('¡Hola, mundo hispano hablante!')
})

si (httpDevServer) {
  puerto = httpDevServer.address().port
  httpDevServer.on('request', servidor)
  consola.escribir(`Servidor corriendo en el puerto ${puerto}`)
}
sino {
  servidor.listen(puerto, () => {
    consola.escribir(`Servidor corriendo en el puerto ${puerto}`)
  })
}
  1. Agregar las siguientes líneas al archivo package.json:
json
{
  "type": "module",
  "scripts": {
    "des": "vite",
    "prod": "vite build --ssr --mode=production",
    "prev": "vite preview"
  }
}
  1. Ejecutar el servidor de desarrollo:
bash
npm run des
bash
pnpm des
bash
yarn des
bash
bun run des

Navega a http://localhost:4500 para ver el resultado.

Publicado bajo licencia MIT.