15%

Ahorra 15%<\/span> en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código:

Skills
Comenzar
15.10.2024

Cómo instalar React.js en un VPS con Windows: Guía completa de configuración

React.js es una biblioteca JavaScript de código abierto mantenida por Meta (anteriormente Facebook) para construir interfaces de usuario basadas en componentes, particularmente aplicaciones de página única (SPAs) que actualizan el DOM dinámicamente sin recargas completas de página. Instalar React en un VPS con Windows — en lugar de una estación de trabajo local — le proporciona un entorno de desarrollo persistente y accesible de forma remota con recursos dedicados, lo que lo hace ideal para la colaboración en equipo, pipelines CI/CD y despliegues de staging.

Esta guía recorre cada paso de una instalación de React.js de nivel productivo en un VPS con Windows: desde la configuración del runtime Node.js y la gestión de variables de entorno hasta el scaffolding de proyectos, la operación del servidor de desarrollo y la salida de compilación para producción. También cubre modos de fallo no obvios que afectan a los ingenieros que siguen tutoriales superficiales.

Por qué instalar React en un VPS con Windows en lugar de localhost

Ejecutar su entorno de desarrollo React en una instancia de VPS Hosting en lugar de una máquina local resuelve varios problemas del mundo real:

  • Disponibilidad persistente: El servidor de desarrollo permanece en ejecución incluso cuando su máquina local está apagada, lo que permite a los miembros remotos del equipo o a los testers de QA acceder a una URL de vista previa en vivo en cualquier momento.
  • Entorno consistente: Cada desarrollador se conecta al mismo SO, versión de Node y árbol de dependencias, eliminando los errores de “funciona en mi máquina”.
  • Aislamiento de recursos: Las compilaciones intensivas en CPU (npm run build, grandes compilaciones de Webpack) no degradan su estación de trabajo local.
  • Paridad de staging: Un VPS con Windows refleja el entorno de despliegue objetivo cuando su stack de producción también está basado en Windows Server (IIS, arquitecturas híbridas ASP.NET).
  • Accesibilidad remota: Puede exponer el servidor de desarrollo en un puerto específico y acceder a él desde cualquier navegador, en cualquier lugar.

Si su carga de trabajo eventualmente escala para servir activos React compilados junto con una API Node.js, considere migrar a un entorno de Servidores Dedicados para garantizar el rendimiento de I/O y eliminar los efectos de vecinos ruidosos.

Requisitos previos

Antes de comenzar, confirme que lo siguiente está en su lugar en su VPS con Windows:

  • Windows Server 2016 / 2019 / 2022 o Windows 10/11 (64 bits)
  • Acceso de administrador o usuario elevado mediante RDP
  • Acceso a internet de salida en el VPS (para descargar instaladores y paquetes npm)
  • Al menos 2 GB RAM — la compilación en memoria de Webpack consume mucha memoria; se recomiendan 4 GB para proyectos con más de unas pocas dependencias
  • Un editor de texto o IDE — Visual Studio Code es el estándar de facto para el desarrollo con React

Paso 1: Instalar Node.js en Windows

1.1 Descargar la versión LTS

React no requiere la última versión de Node.js. El canal LTS (Long Term Support) es la elección correcta para cualquier entorno donde la estabilidad importa.

  1. Abra un navegador en su VPS (o descargue de forma remota y transfiera mediante el portapapeles RDP).
  2. Navegue a https://nodejs.org.
  3. Descargue el Instalador de Windows (.msi) para la versión LTS actual (por ejemplo, 20.x o 22.x).

Nota crítica: Descargue siempre el instalador .msi de 64 bits, no el archivo .zip. El .msi gestiona automáticamente el registro en PATH, la integración de servicios y la dependencia de Visual C++ Redistributable. El archivo .zip requiere configuración manual de PATH y es una fuente común de errores de npm no reconocido.

1.2 Ejecutar el instalador

Ejecute el archivo .msi descargado y siga el asistente:

  1. Acepte el acuerdo de licencia.
  2. Deje la ruta de destino como predeterminada (C:Program Filesnodejs) a menos que tenga una razón específica para cambiarla.
  3. En la pantalla de Configuración personalizada, asegúrese de que todos los siguientes componentes estén marcados:
  • Runtime de Node.js
  • Gestor de paquetes npm
  • Agregar a PATH (esta es la casilla más importante — si no está marcada, ningún terminal reconocerá node o npm)
  • Accesos directos a documentación en línea (opcional)
  1. En la pantalla de Herramientas para módulos nativos, marque “Instalar automáticamente las herramientas necesarias” si anticipa usar paquetes npm que requieran compilación nativa (node-gyp, bcrypt, sharp, etc.). Esto instala Chocolatey, Python y las Visual Studio Build Tools de forma silenciosa.
  2. Complete la instalación y reinicie la sesión de terminal (o toda la sesión RDP si los cambios de PATH no se reflejan inmediatamente).

1.3 Verificar la instalación

Abra una nueva ventana de PowerShell o Símbolo del sistema (no una que estuviera abierta antes de la instalación — no tendrá el PATH actualizado) y ejecute:

node -v
npm -v

Ambos comandos deben devolver cadenas de versión. Si alguno devuelve 'node' is not recognized as an internal or external command, el PATH no se configuró correctamente. Consulte la sección de solución de problemas a continuación.

Ejemplo de salida esperada:

v20.14.0
10.7.0

1.4 Configurar el directorio de paquetes globales de npm (opcional pero recomendado)

De forma predeterminada, npm instala paquetes globales en C:Users<username>AppDataRoamingnpm. En un entorno de Windows Server compartido o multiusuario, esto puede causar conflictos de permisos. Para establecer un directorio global personalizado:

npm config set prefix "C:npm-global"

Luego agregue C:npm-global al PATH del sistema mediante Propiedades del sistema > Variables de entorno > Variables del sistema > Path.

Paso 2: Crear el scaffolding de una aplicación React

2.1 El enfoque moderno: Vite (recomendado sobre Create React App)

El artículo original recomienda create-react-app (CRA). Este es un consejo desactualizado. CRA fue oficialmente deprecado a principios de 2023 y ya no es mantenido por el equipo central de React. La propia documentación de React ya no lo recomienda para nuevos proyectos.

Las herramientas de scaffolding actualmente recomendadas son:

HerramientaSistema de compilaciónVelocidad del servidor de desarrolloSalida del bundleMejor para
**Vite**Rollup (ESM nativo)Extremadamente rápido (HMR en milisegundos)Módulos ES optimizadosProyectos nuevos, SPAs, navegadores modernos
**Create React App**Webpack 4Lento en proyectos grandesBundle CommonJSSolo proyectos heredados
**Next.js**Turbopack / WebpackRápidoSSR + estáticoReact full-stack, aplicaciones críticas para SEO
**Remix**esbuildRápidoRenderizado en servidorAplicaciones con muchos datos y formularios
**Parcel**Bundler ParcelRápido, sin configuraciónMúltiples objetivosPrototipado, proyectos pequeños

Para una SPA sencilla en un VPS con Windows, Vite es la elección correcta en 2024 y más allá.

2.2 Crear un nuevo proyecto React con Vite

Abra PowerShell y navegue a su directorio de proyectos:

cd C:Projects

Cree el scaffolding de un nuevo proyecto React:

npm create vite@latest my-react-app -- --template react

Para usar TypeScript (muy recomendado para cualquier proyecto no trivial):

npm create vite@latest my-react-app -- --template react-ts

Navegue al directorio del proyecto e instale las dependencias:

cd my-react-app
npm install

2.3 Si debe usar Create React App (proyectos heredados)

Si está manteniendo una base de código heredada que requiere CRA, use npx para ejecutarlo sin una instalación global:

npx create-react-app my-react-app

No ejecute npm install -g create-react-app. El enfoque de instalación global está deprecado y descargará una versión en caché desactualizada. Usar npx siempre obtiene la última versión disponible del registro.

Paso 3: Ejecutar el servidor de desarrollo

3.1 Iniciar el servidor de desarrollo

Para un proyecto basado en Vite:

npm run dev

Para un proyecto basado en CRA:

npm start

Ambos comandos inician un servidor de desarrollo local. Vite usa por defecto http://localhost:5173; CRA usa por defecto http://localhost:3000.

3.2 Exponer el servidor de desarrollo en un VPS con Windows (acceso remoto)

En una máquina local, el servidor de desarrollo solo es accesible desde localhost. En un VPS, normalmente desea acceder a él desde su navegador local a través de internet. Se requieren dos cambios:

Vincular el servidor a todas las interfaces de red:

Para Vite, edite vite.config.js (o vite.config.ts):

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

export default defineConfig({
  plugins: [react()],
  server: {
    host: '0.0.0.0',
    port: 5173,
  },
})

Para CRA, establezca la variable de entorno HOST antes de iniciar:

set HOST=0.0.0.0
npm start

Abrir el puerto en el Firewall de Windows:

netsh advfirewall firewall add rule name="React Dev Server" dir=in action=allow protocol=TCP localport=5173

Después de esto, puede acceder al servidor de desarrollo en http://<your-vps-ip>:5173 desde cualquier navegador.

Advertencia de seguridad: Nunca exponga un servidor de desarrollo a internet público en un VPS de producción sin autenticación. Use un proxy inverso (Nginx o IIS con URL Rewrite) o un túnel VPN para cualquier entorno que maneje datos reales.

Paso 4: Estructura del proyecto y archivos clave

Comprender la estructura del scaffolding evita confusiones cuando empiece a modificar archivos:

my-react-app/
├── public/             # Static assets served as-is (favicon, robots.txt)
├── src/
│   ├── assets/         # Images, fonts imported by components
│   ├── App.jsx         # Root component
│   ├── App.css         # Root component styles
│   ├── main.jsx        # Entry point — mounts <App /> into index.html
│   └── index.css       # Global styles
├── index.html          # HTML shell — Vite injects the bundle here
├── vite.config.js      # Vite configuration
├── package.json        # Dependencies and scripts
└── node_modules/       # Installed packages (never commit this)

El archivo src/main.jsx es el punto de entrada de la aplicación. Llama a ReactDOM.createRoot() para montar el componente raíz en el div #root en index.html. Cada componente que construya será finalmente importado en este árbol.

Paso 5: Compilar para producción

Cuando la aplicación esté lista para el despliegue, genere una compilación estática optimizada:

npm run build

Este comando invoca el bundler basado en Rollup de Vite (o Webpack para CRA), que:

  • Transpila JSX y JavaScript moderno a ES5/ES2015+ compatible con el navegador
  • Elimina el código no utilizado del bundle mediante tree-shaking
  • Minifica JavaScript, CSS y HTML
  • Genera nombres de archivo con hash de contenido para el almacenamiento en caché del navegador a largo plazo
  • Genera todo en el directorio dist/ (Vite) o en el directorio build/ (CRA)

Para previsualizar la compilación de producción localmente antes de desplegarla:

npm run preview

El contenido de dist/ son archivos puramente estáticos (HTML, JS, CSS, activos). Pueden ser servidos por cualquier servidor web — IIS en Windows Server, Nginx, Apache o un servicio de alojamiento estático.

Desplegar la compilación en IIS en Windows Server

Si su VPS ejecuta IIS, configure un nuevo sitio apuntando a la carpeta dist/. Dado que las SPAs de React usan enrutamiento del lado del cliente, debe agregar una regla de URL Rewrite para redirigir todos los errores 404 de vuelta a index.html:

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="React SPA" stopProcessing="true">
          <match url=".*" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="/index.html" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

Sin esta regla, cualquier navegación directa a una ruta como /dashboard devolverá un error 404 de IIS en lugar de cargar la aplicación React.

Si está sirviendo el frontend React junto con una API de backend y necesita un entorno de panel de control gestionado, un VPS con cPanel puede simplificar la configuración de hosts virtuales y la terminación SSL.

Paso 6: Asegurar la aplicación con HTTPS

Una aplicación React en producción debe servirse a través de HTTPS. Los navegadores bloquean las solicitudes de contenido mixto, y muchas APIs del navegador (service workers, geolocalización, portapapeles) están restringidas a contextos seguros.

Para un despliegue alojado en VPS:

  1. Obtenga un certificado SSL para su dominio. AlexHost proporciona Certificados SSL que pueden instalarse directamente en su VPS.
  2. Configure IIS o su proxy inverso para terminar TLS en el puerto 443 y redirigir HTTP (puerto 80) a HTTPS.
  3. Establezca la variable de entorno HTTPS en true si usa el servidor integrado de CRA para pruebas HTTPS locales.

Si aún no tiene un dominio apuntando a su VPS, registre uno primero a través del Registro de Dominios y configure el registro DNS A para que apunte a la dirección IP de su VPS.

Paso 7: Solución de problemas comunes

node o npm no reconocido

Esto significa que el directorio de instalación de Node.js no está en el PATH del sistema. Corríjalo manualmente:

  1. Presione Win + R, escriba sysdm.cpl, presione Enter.
  2. Vaya a Avanzado > Variables de entorno.
  3. En Variables del sistema, busque Path y haga clic en Editar.
  4. Agregue C:Program Filesnodejs como una nueva entrada.
  5. Haga clic en Aceptar en todos los cuadros de diálogo, luego abra una nueva ventana de terminal.

Errores EACCES o de permiso denegado durante la instalación de npm

En Windows Server, esto ocurre típicamente cuando se ejecuta npm como usuario restringido. Ejecute PowerShell como Administrador, o configure el caché y los directorios globales de npm en una ruta que sea propiedad del usuario actual:

npm config set cache "C:npm-cache"
npm config set prefix "C:npm-global"

Puerto ya en uso

Si el puerto 5173 o 3000 está ocupado por otro proceso:

netstat -ano | findstr :5173

Identifique el PID en la última columna, luego:

taskkill /PID <PID> /F

Alternativamente, cambie el puerto en vite.config.js o pase --port como indicador:

npm run dev -- --port 3001

npm ERR! code EINTEGRITY (discrepancia de suma de verificación)

Esto indica una caché de npm corrupta. Límpiela y vuelva a intentarlo:

npm cache clean --force
npm install

npm install lento en la primera ejecución

La instalación inicial de dependencias para un proyecto React puede tardar entre 2 y 5 minutos dependiendo del rendimiento de red del VPS y el I/O del disco. Si consistentemente se agota el tiempo de espera, verifique si el VPS tiene acceso de salida a registry.npmjs.org en el puerto 443. Algunas políticas de firewall de centros de datos bloquean esto de forma predeterminada.

Matriz de decisión: Elegir la configuración React adecuada para su VPS

EscenarioScaffolding recomendadoServir conNotas
Nueva SPA, objetivos de navegadores modernosVite + ReactIIS / proxy inverso NginxTiempos de compilación más rápidos, mejor DX
Mantenimiento de proyecto CRA heredadoCRA (mediante npx)IIS / servidor de archivos estáticosNo migre a menos que sea necesario
Sitio público crítico para SEONext.jsProceso Node.js (PM2)SSR requerido para indexación por crawlers
Panel de control interno, sin necesidad de SEOVite + ReactSitio estático IISNo se necesita sobrecarga de SSR
React full-stack + API en el mismo VPSNext.js o RemixPM2 + proxy inverso IISRutas API gestionadas en el servidor
Despliegue de producción de alto tráficoCompilación Vite + CDNCDN edge + origen VPSDescargue activos estáticos al CDN

Lista de verificación de puntos clave prácticos

  • Instale la versión LTS de Node.js usando el instalador .msi, no el archivo .zip, para garantizar el registro automático en PATH.
  • Use npx create vite@latest para todos los nuevos proyectos React — CRA está deprecado y no debe usarse para desarrollo desde cero.
  • En un VPS, establezca host: '0.0.0.0' en vite.config.js y abra el puerto de firewall correspondiente para acceder al servidor de desarrollo de forma remota.
  • Agregue una regla de URL Rewrite de IIS para redirigir todas las solicitudes que no sean de archivos ni directorios a index.html — sin ella, el enrutamiento del lado del cliente se rompe al acceder directamente a una URL.
  • Sirva siempre las compilaciones de producción a través de HTTPS; obtenga e instale un certificado SSL antes de poner en marcha.
  • Ejecute npm run build e inspeccione la salida de dist/ antes de desplegar — verifique los tamaños del bundle usando npm run build -- --report o vite-bundle-visualizer.
  • Nunca confirme node_modules/ en el control de versiones; agréguelo siempre a .gitignore.
  • Si se requieren múltiples versiones de Node en distintos proyectos, instale nvm-windows para gestionarlas sin reinstalar Node.js globalmente.

Preguntas frecuentes

¿React.js necesita ser “instalado” en un servidor, o solo la salida de la compilación?

React en sí es una dependencia de tiempo de compilación. La salida de producción de npm run build es HTML, CSS y JavaScript simples — no se requiere runtime de Node.js en el servidor para servirlo. Node.js solo es necesario en la máquina donde se ejecuta el proceso de compilación.

¿Cuál es la diferencia entre npm run dev y npm run build?

npm run dev inicia un servidor de desarrollo con reemplazo de módulos en caliente (HMR) y mapas de fuente sin minificar — no está optimizado para el rendimiento y nunca debe usarse para servir tráfico de producción. npm run build produce un bundle estático minificado, con tree-shaking y nombres de archivo con hash de contenido destinado al despliegue.

¿Por qué está deprecado Create React App y qué debo usar en su lugar?

CRA depende de Webpack 4, que tiene tiempos de compilación y HMR significativamente más lentos en comparación con el servidor de desarrollo nativo ESM de Vite. El equipo de React eliminó oficialmente CRA de su documentación en 2023 y ahora recomienda Vite para SPAs, Next.js para aplicaciones full-stack y Remix para aplicaciones con muchos datos.

¿Puedo ejecutar múltiples proyectos React en el mismo VPS con Windows simultáneamente?

Sí. Cada proyecto ejecuta su servidor de desarrollo en un puerto diferente. Configure el vite.config.js de cada proyecto con un valor port único, abra cada puerto en el Firewall de Windows y, opcionalmente, configure IIS como proxy inverso para enrutar subdominios o rutas al puerto correspondiente.

¿Cómo mantengo el servidor de desarrollo React en ejecución después de cerrar mi sesión RDP?

Use un gestor de procesos. Instale PM2 globalmente (npm install -g pm2) e inicie el servidor de desarrollo como un proceso gestionado: pm2 start npm --name "react-dev" -- run dev. PM2 mantiene el proceso activo independientemente de la sesión de terminal y puede configurarse para reiniciarse al arrancar el sistema.

15%

Ahorra 15%<\/span> en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código:

Skills
Comenzar