Files
arcticnewone/README.md
T

99 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Arcticnewone 个人网站
北极新一(Arcticnewone)的个人网站,提供个人介绍、作品集、工作室服务、动态资讯、工具箱与联系页面,是一个现代化的展示型站点。
## 技术栈
- [Nuxt 4](https://nuxt.com/) — 应用框架(服务端渲染 + 静态生成)
- [Vue 3](https://vuejs.org/) — 视图层
- [Tailwind CSS](https://tailwindcss.com/) — 样式方案(通过 `@nuxtjs/tailwindcss` 集成)
- [GSAP](https://gsap.com/) — 页面动画(配合 Lenis 平滑滚动)
- [Pinia](https://pinia.vuejs.org/) — 状态管理
- [@nuxtjs/i18n](https://i18n.nuxtjs.org/) — 国际化(中/英双语)
- [@nuxt/icon](https://nuxt.com/modules/icon) — 图标
- [pnpm](https://pnpm.io/) — 包管理器
## 本地开发
### 环境要求
- Node.js ≥ 20(推荐 22,与 Docker 构建镜像一致)
- pnpm ≥ 9
### 安装与启动
```bash
# 1. 安装依赖
pnpm install
# 2. 启动开发服务器(默认 http://localhost:3000
pnpm dev
```
开发服务器启动后访问 http://localhost:3000,代码修改会热更新生效。
### 常用命令
| 命令 | 说明 |
| --- | --- |
| `pnpm dev` | 启动开发服务器 |
| `pnpm build` | 构建生产版本(生成 `.output/` |
| `pnpm generate` | 静态站点生成(输出到 `dist/` |
| `pnpm preview` | 本地预览生产构建 |
| `pnpm start` | 以 Node 方式启动 `.output/server/index.mjs` |
## 项目结构
```text
.
├── app/ # 应用源码(Nuxt 4 约定目录)
│ ├── app.vue # 应用入口(全局 SEO / Meta
│ ├── assets/ # 静态资源(样式、图片等)
│ ├── components/ # 组件(common / home
│ ├── composables/ # 组合式函数
│ ├── layouts/ # 布局
│ ├── pages/ # 页面(首页、工作室、作品、动态、工具、联系)
│ ├── plugins/ # 插件(如 Lenis 平滑滚动)
│ ├── stores/ # Pinia 状态
│ └── types/ # 类型定义
├── i18n/
│ └── locales/ # 国际化文案(zh.json / en.json
├── public/ # 公开静态文件(favicon、robots.txt 等)
├── Dockerfile # 容器镜像构建
├── Jenkinsfile # CI/CD 流水线(构建、推送镜像、部署容器)
├── docker-compose.yml # 本地容器编排
├── nuxt.config.ts # Nuxt 配置(模块、i18n、Tailwind 等)
├── tailwind.config.js # Tailwind 配置
└── package.json # 项目依赖与脚本
```
## 构建与部署
生产构建:
```bash
pnpm build
```
构建产物输出到 `.output/`,可直接通过 `pnpm start` 或容器运行。
当前部署相关文件位于仓库根目录(`deploy/` 目录暂未创建,后续按团队规范存放生产部署 k8s 配置):
- `Dockerfile` — 多阶段构建:安装依赖 → 构建 → 仅保留 `.output/` 运行产物
- `Jenkinsfile` — Jenkins 流水线:构建镜像 → 推送到镜像仓库 → 部署容器
- `docker-compose.yml` — 本地容器编排,宿主机 3100 端口映射容器 3000 端口
## 国际化(i18n
项目使用 `@nuxtjs/i18n` 实现中/英双语:
- 语言文件位于 `i18n/locales/``zh.json`(中文)、`en.json`(英文)
- 默认语言为中文(`defaultLocale: 'zh'`),URL 不包含语言前缀(`strategy: 'no_prefix'`),不自动探测浏览器语言
- 组件中通过 `useI18n()``t()` 方法读取文案,例如 `t('nav.home')`
新增文案时,在 `zh.json``en.json` 中同步添加对应键即可。
## 说明
本项目不含任何密钥或敏感信息;本地环境变量请使用 `.env` 文件(已被 `.gitignore` 忽略)。