319 lines
5.9 KiB
Markdown
319 lines
5.9 KiB
Markdown
# Youwei Vue - Installation and Deployment Guide
|
|
|
|
## Overview
|
|
|
|
Youwei Vue is a modern web application built with Vue 3, TypeScript, and Vite. This document provides comprehensive instructions for installing, configuring, and deploying the application.
|
|
|
|
---
|
|
|
|
## Table of Contents
|
|
|
|
1. [Prerequisites](#prerequisites)
|
|
2. [Environment Setup](#environment-setup)
|
|
3. [Installation](#installation)
|
|
4. [Development](#development)
|
|
5. [Building for Production](#building-for-production)
|
|
6. [Deployment](#deployment)
|
|
7. [Troubleshooting](#troubleshooting)
|
|
|
|
---
|
|
|
|
## Prerequisites
|
|
|
|
Before you begin, ensure your system meets the following requirements:
|
|
|
|
### System Requirements
|
|
|
|
| Component | Minimum Version |
|
|
|-----------|-----------------|
|
|
| Node.js | ^20.19.0 or >=22.12.0 |
|
|
| npm | 10.x or higher |
|
|
| Git | 2.x or higher |
|
|
|
|
### Supported Operating Systems
|
|
|
|
- Windows 10/11
|
|
- macOS 10.15+
|
|
- Linux (Ubuntu 20.04+, CentOS 8+, Debian 10+)
|
|
|
|
### Recommended IDE
|
|
|
|
- [VS Code](https://code.visualstudio.com/) with [Vue - Official](https://marketplace.visualstudio.com/items?itemName=Vue.volar) extension
|
|
- Disable Vetur extension if previously installed
|
|
|
|
---
|
|
|
|
## Environment Setup
|
|
|
|
### 1. Install Node.js
|
|
|
|
Download and install Node.js from the official website:
|
|
|
|
```bash
|
|
# Using nvm (recommended)
|
|
nvm install 20
|
|
nvm use 20
|
|
|
|
# Or download directly from
|
|
# https://nodejs.org/
|
|
```
|
|
|
|
Verify installation:
|
|
|
|
```bash
|
|
node --version # Should show v20.19.0 or higher
|
|
npm --version # Should show 10.x or higher
|
|
```
|
|
|
|
### 2. Install Git
|
|
|
|
```bash
|
|
# Windows: Download from https://git-scm.com/download/win
|
|
# macOS: brew install git
|
|
# Linux: sudo apt-get install git
|
|
```
|
|
|
|
---
|
|
|
|
## Installation
|
|
|
|
### 1. Clone the Repository
|
|
|
|
```bash
|
|
git clone <repository-url>
|
|
cd youwei-vue
|
|
```
|
|
|
|
### 2. Install Dependencies
|
|
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
This command installs all required dependencies including:
|
|
- Vue 3.5.29
|
|
- Vue Router 5.0.3
|
|
- Pinia 3.0.4
|
|
- TypeScript 5.9.3
|
|
- Vite 7.3.1
|
|
- ESLint & Oxlint for code quality
|
|
|
|
---
|
|
|
|
## Development
|
|
|
|
### Start Development Server
|
|
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
The development server will start at `http://localhost:5173` by default.
|
|
|
|
### Available Scripts
|
|
|
|
| Command | Description |
|
|
|---------|-------------|
|
|
| `npm run dev` | Start development server with hot reload |
|
|
| `npm run build` | Type-check and build for production |
|
|
| `npm run build-only` | Build without type checking |
|
|
| `npm run type-check` | Run TypeScript type checking |
|
|
| `npm run preview` | Preview production build locally |
|
|
| `npm run lint` | Run all linters (ESLint + Oxlint) |
|
|
| `npm run lint:eslint` | Run ESLint with auto-fix |
|
|
| `npm run lint:oxlint` | Run Oxlint with auto-fix |
|
|
|
|
### Development Features
|
|
|
|
- **Hot Module Replacement (HMR)**: Changes are reflected instantly
|
|
- **Vue DevTools**: Integrated via `vite-plugin-vue-devtools`
|
|
- **Path Aliases**: Use `@/` to reference `src/` directory
|
|
- **TypeScript Support**: Full type checking with `vue-tsc`
|
|
|
|
---
|
|
|
|
## Building for Production
|
|
|
|
### Production Build
|
|
|
|
```bash
|
|
npm run build
|
|
```
|
|
|
|
This command:
|
|
1. Runs TypeScript type checking
|
|
2. Compiles and minifies the application
|
|
3. Outputs to `dist/` directory
|
|
|
|
### Preview Production Build
|
|
|
|
```bash
|
|
npm run preview
|
|
```
|
|
|
|
This serves the production build locally for testing before deployment.
|
|
|
|
### Build Output Structure
|
|
|
|
```
|
|
dist/
|
|
├── assets/
|
|
│ ├── index-xxx.js
|
|
│ ├── index-xxx.css
|
|
│ └── ...
|
|
├── favicon.ico
|
|
├── index.html
|
|
└── logo.png
|
|
```
|
|
|
|
---
|
|
|
|
## Deployment
|
|
|
|
### Static Hosting
|
|
|
|
The `dist/` folder contains static files that can be deployed to any static hosting service.
|
|
|
|
#### Option 1: Nginx
|
|
|
|
```nginx
|
|
server {
|
|
listen 80;
|
|
server_name your-domain.com;
|
|
root /var/www/youwei-vue/dist;
|
|
index index.html;
|
|
|
|
location / {
|
|
try_files $uri $uri/ /index.html;
|
|
}
|
|
|
|
location /assets {
|
|
expires 1y;
|
|
add_header Cache-Control "public, immutable";
|
|
}
|
|
}
|
|
```
|
|
|
|
#### Option 2: Apache
|
|
|
|
```apache
|
|
<IfModule mod_rewrite.c>
|
|
RewriteEngine On
|
|
RewriteBase /
|
|
RewriteRule ^index\.html$ - [L]
|
|
RewriteCond %{REQUEST_FILENAME} !-f
|
|
RewriteCond %{REQUEST_FILENAME} !-d
|
|
RewriteRule . /index.html [L]
|
|
</IfModule>
|
|
```
|
|
|
|
#### Option 3: Cloud Platforms
|
|
|
|
- **Vercel**: Connect Git repository for automatic deployments
|
|
- **Netlify**: Drag and drop `dist/` folder or connect Git
|
|
- **AWS S3 + CloudFront**: Upload `dist/` contents to S3 bucket
|
|
- **GitHub Pages**: Use GitHub Actions for CI/CD
|
|
|
|
### Docker Deployment
|
|
|
|
Create a `Dockerfile`:
|
|
|
|
```dockerfile
|
|
# Build stage
|
|
FROM node:20-alpine AS builder
|
|
WORKDIR /app
|
|
COPY package*.json ./
|
|
RUN npm ci
|
|
COPY . .
|
|
RUN npm run build
|
|
|
|
# Production stage
|
|
FROM nginx:alpine
|
|
COPY --from=builder /app/dist /usr/share/nginx/html
|
|
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
|
EXPOSE 80
|
|
CMD ["nginx", "-g", "daemon off;"]
|
|
```
|
|
|
|
Build and run:
|
|
|
|
```bash
|
|
docker build -t youwei-vue .
|
|
docker run -p 80:80 youwei-vue
|
|
```
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
#### 1. Node Version Mismatch
|
|
|
|
**Error**: `engines.node` incompatible
|
|
|
|
**Solution**:
|
|
```bash
|
|
nvm install 20
|
|
nvm use 20
|
|
```
|
|
|
|
#### 2. Port Already in Use
|
|
|
|
**Error**: `Port 5173 is already in use`
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Kill process on port 5173
|
|
npx kill-port 5173
|
|
|
|
# Or use a different port
|
|
npm run dev -- --port 3000
|
|
```
|
|
|
|
#### 3. TypeScript Errors
|
|
|
|
**Error**: Type checking fails
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Run type check separately
|
|
npm run type-check
|
|
|
|
# Check for missing types
|
|
npm install --save-dev @types/node
|
|
```
|
|
|
|
#### 4. Build Failures
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Clean and reinstall
|
|
rm -rf node_modules package-lock.json
|
|
npm install
|
|
npm run build
|
|
```
|
|
|
|
### Browser Compatibility
|
|
|
|
- Chrome/Edge 88+
|
|
- Firefox 78+
|
|
- Safari 14+
|
|
|
|
For older browsers, consider adding polyfills to your Vite configuration.
|
|
|
|
---
|
|
|
|
## Additional Resources
|
|
|
|
- [Vue 3 Documentation](https://vuejs.org/)
|
|
- [Vite Documentation](https://vitejs.dev/)
|
|
- [TypeScript Documentation](https://www.typescriptlang.org/)
|
|
- [Pinia Documentation](https://pinia.vuejs.org/)
|
|
|
|
---
|
|
|
|
## Support
|
|
|
|
For issues and feature requests, please use the project's issue tracker.
|