EsJS + Express
- 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.
- Instalar dependencias:
- Dependencias de desarrollobash
npm install vite vavite @es-js/vite-plugin-esjs --save-dev
bashpnpm install vite vavite @es-js/vite-plugin-esjs --save-dev
bashyarn add vite vavite @es-js/vite-plugin-esjs --save-dev
bashbun add vite vavite @es-js/vite-plugin-esjs --save-dev
- Dependencias de producciónbash
npm install express
bashpnpm install express
bashyarn add express
bashbun add express
- 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)
}
})
- Crear archivo
src/app.esjs
con el siguiente contenido:
esjs
importar express desde 'express'
importar httpDevServer desde 'vavite/http-dev-server'
const servidor = express()
const puerto = process.env.PORT || 4500
servidor.use('/', (req, res) => {
res.send('¡Hola, mundo hispano hablante!')
})
si (httpDevServer) {
httpDevServer.on('request', servidor)
consola.escribir(`Servidor corriendo en el puerto ${puerto}`)
}
sino {
servidor.listen(puerto, () => {
consola.escribir(`Servidor corriendo en el puerto ${puerto}`)
})
}
- Agregar las siguientes líneas al archivo
package.json
:
json
{
"type": "module",
"scripts": {
"des": "vite",
"prod": "vite build --ssr --mode=production",
"prev": "vite preview"
}
}
- 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.