Descripción general

Vue.js es un framework progresivo de JavaScript para crear interfaces de usuario. Está diseñado para adoptarse de forma incremental y se centra en la capa de vista, lo que facilita su integración con otras librerías o proyectos existentes.

Antes de empezar
Asegúrate de tener tu panel abierto - necesitarás las credenciales de Git que se muestran allí. Esta plantilla incluye Vue 3, Tailwind CSS 4, Pinia para la gestión del estado y Vue Router.

Inicio rápido

1

Crear repositorio desde plantilla

En tu panel, ve a la pestaña Tools & Deployment. Haz clic en el botón "New Repository", selecciona la plantilla de Vue.js del menú desplegable, introduce un nombre de repositorio y un subdominio, y luego haz clic en "Create Repository".

2

Clona tu repositorio

git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
3

Instala las dependencias

npm install
4

Inicia el servidor de desarrollo

npm run dev

Abre http://localhost:4200 en tu navegador.

5

Compila y haz push

npm run build
git add .
git commit -m "Initial setup"
git push origin main
Cada push a Git despliega tu aplicación automáticamente. Consulta tu URL de trabajo del módulo en el panel para ver tu sitio en vivo.

Desarrollo local con Docker

Si no tienes Node.js instalado localmente, puedes usar Docker para ejecutar comandos de Vue. El proyecto incluye un Dockerfile para builds de producción con nginx.

¿Qué es Docker?
Docker crea "contenedores" aislados con todo el software que necesitas (Node.js, npm) sin instalarlo en tu ordenador. Piénsalo como una máquina virtual ligera.

Requisitos previos

Instala Docker Desktop para tu sistema operativo (Windows, Mac o Linux).

Ejecutar comandos con Docker

# Run npm install
docker run --rm -v $(pwd):/app -w /app node:lts-alpine npm install

# Run development server (accessible at localhost:4200)
docker run --rm -v $(pwd):/app -w /app -p 4200:4200 node:lts-alpine npm run dev

# Build for production
docker run --rm -v $(pwd):/app -w /app node:lts-alpine npm run build
Nota
Docker es opcional para el desarrollo local. La plataforma NStrim gestiona el despliegue automáticamente: solo necesitas Docker si quieres ejecutar comandos localmente sin tener Node.js instalado.

Estructura del proyecto

Entender dónde se ubican los archivos:

├── src/
│   ├── assets/               # Recursos estáticos (imágenes, fuentes)
│   ├── components/           # Componentes Vue
│   ├── views/                # Componentes de página
│   ├── router/               # Configuración de Vue Router
│   ├── stores/               # Stores de Pinia
│   ├── App.vue               # Componente raíz
│   └── main.js               # Punto de entrada de la aplicación
├── public/                   # Archivos estáticos públicos
├── index.html                # Punto de entrada HTML
├── vite.config.js            # Configuración de Vite
├── package.json              # Dependencias y scripts
└── Dockerfile                # Configuración de build Docker
        

Tareas comunes

Crear un componente

Crea archivos .vue en src/components/:

<!-- src/components/Button.vue -->
<script setup>
defineProps({
  label: String
});

const emit = defineEmits(['click']);
</script>

<template>
  <button
    class="bg-blue-500 text-white px-4 py-2 rounded"
    @click="emit('click')"
  >
    {{ label }}
  </button>
</template>

Añadir una ruta

Edita src/router/index.js:

import { createRouter, createWebHistory } from 'vue-router';
import Home from '../views/Home.vue';
import About from '../views/About.vue';

const router = createRouter({
  history: createWebHistory(),
  routes: [
    { path: '/', component: Home },
    { path: '/about', component: About }
  ]
});

export default router;

Usar un store de Pinia

Crea un store en src/stores/:

// src/stores/counter.js
import { defineStore } from 'pinia';

export const useCounterStore = defineStore('counter', {
  state: () => ({ count: 0 }),
  actions: {
    increment() { this.count++ },
    decrement() { this.count-- }
  }
});

Usar Tailwind CSS

Tailwind CSS 4 viene preconfigurado. Usa las clases directamente en tus plantillas:

<div class="bg-blue-500 text-white p-4 rounded-lg">
  Hello Tailwind!
</div>

Comandos útiles

npm run dev Iniciar el servidor de desarrollo (puerto 4200)
npm run build Compilar para producción
npm run preview Previsualizar el build de producción localmente
npm run test:unit Ejecutar tests unitarios con Vitest
npm run lint Comprobar y corregir el estilo del código
npm run format Formatear código con Prettier

Resolución de problemas

npm install falla con errores de permisos

Causa: Problemas de permisos con la caché de npm o node_modules.

Solución: Elimina la carpeta node_modules y el archivo package-lock.json, y luego ejecuta npm install de nuevo.

El puerto 4200 ya está en uso

Causa: Otro proceso está usando el puerto 4200.

Solución: Usa otro puerto: npm run dev -- --port 3000 o detén el otro proceso.

El componente no se actualiza

Causa: Reactividad mal configurada.

Solución: Usa ref() para primitivas y reactive() para objetos. Accede a los valores ref con .value en el script, pero no en la plantilla.

El router no funciona

Causa: RouterView no está en App.vue o el router no está registrado.

Solución: Asegúrate de que <RouterView /> está en App.vue y que el router se añade con app.use(router) en main.js.

El build falla tras el despliegue

Causa: Errores de compilación o dependencias faltantes.

Solución: Ejecuta npm run build localmente primero para comprobar errores antes de hacer push.

Flujo de despliegue

Cada vez que haces push de tu código a Git, tu aplicación se compila y despliega automáticamente:

Cambio de código git push npm run build Despliegue a nginx ¡En vivo!

La URL de tu aplicación desplegada sigue este formato:

https://<your-subdomain>-<repo-name>.<session-domain>

Ejemplo: https://student01-module-a.demo.nstrim.app

Para más información, visita la documentación oficial de Vue.js.