SoybeanAdmin是一款基于Vue3、Vite4、TypeScript等前沿技术栈开发的后台管理系统模板。作为一名长期从事前端开发的工程师,我最近在多个项目中采用了这套模板,发现它不仅界面美观,而且架构设计合理,特别适合快速搭建企业级后台管理系统。
这套模板最大的特点在于:
在实际工作中,我们经常需要将本地开发的后台管理系统临时分享给团队成员或客户预览。传统的方式是部署到云服务器,但这需要额外的服务器资源和部署时间。通过内网穿透技术,我们可以直接将本地运行的系统暴露到公网,实现快速的外部访问。
在开始之前,我们需要确保本地开发环境已经准备好以下工具:
Git:用于克隆项目代码库。可以从Git官网下载最新版本,安装时建议勾选"Add to PATH"选项,方便在命令行直接使用。
Node.js:推荐安装LTS版本(目前是18.x)。安装完成后,在命令行执行以下命令验证安装:
bash复制node -v
npm -v
pnpm:这是一个比npm更高效的包管理工具。安装命令:
bash复制npm install -g pnpm
提示:如果遇到权限问题,在Windows上可以尝试以管理员身份运行命令行工具,或者在命令前加上
sudo(Mac/Linux)。
打开命令行工具,执行以下命令克隆项目仓库:
bash复制git clone https://github.com/soybeanjs/soybean-admin.git
如果网络连接不稳定导致克隆失败,可以尝试使用SSH方式:
bash复制git clone git@github.com:soybeanjs/soybean-admin.git
进入项目目录:
bash复制cd soybean-admin
切换到example分支(这个分支包含完整的示例代码):
bash复制git checkout example
安装项目依赖:
bash复制pnpm i
这个过程可能会花费几分钟时间,取决于网络速度。
启动开发服务器:
bash复制pnpm dev
成功启动后,终端会显示类似下面的信息:
code复制 VITE v4.3.9 ready in 1234 ms
➜ Local: http://localhost:9527/
➜ Network: use --host to expose
➜ press h to show help
此时,浏览器会自动打开项目首页(通常是http://localhost:9527)。如果自动打开失败,可以手动输入上述地址访问。
了解项目结构有助于后续的开发和定制:
code复制soybean-admin/
├── public/ # 静态资源
├── src/
│ ├── api/ # 接口定义
│ ├── assets/ # 静态资源
│ ├── components/ # 公共组件
│ ├── composables/ # 组合式函数
│ ├── config/ # 项目配置
│ ├── directives/ # 自定义指令
│ ├── enums/ # 枚举类型
│ ├── hooks/ # 自定义hooks
│ ├── layouts/ # 布局组件
│ ├── router/ # 路由配置
│ ├── stores/ # 状态管理
│ ├── styles/ # 样式文件
│ ├── utils/ # 工具函数
│ └── views/ # 页面组件
├── .env # 环境变量
├── vite.config.ts # Vite配置
└── package.json # 项目依赖
vite.config.ts:这是项目的构建配置文件,我们需要特别关注其中的server配置:
typescript复制server: {
port: 9527, // 开发服务器端口
host: true, // 允许局域网访问
open: true, // 自动打开浏览器
// 添加以下配置允许特定域名访问
allowedHosts: ['your-domain.luyouxia.com']
}
.env:环境变量配置文件,可以在这里设置API基础路径等变量:
code复制VITE_BASE_API=/api
VITE_PROXY=[["/api","http://localhost:3000"]]
内网穿透技术允许外部网络访问位于内网(如家庭或公司局域网)中的服务,其基本原理是:
这种方式不需要在路由器上做端口映射,适合没有公网IP或无法修改路由器设置的情况。
以下是详细的配置步骤:
下载并安装内网穿透工具(以路由侠为例)
启动工具后,进入"内网映射"功能模块
点击"添加映射",选择"原生端口"类型
填写映射信息:
点击"创建"按钮,系统会生成一个公网访问地址,格式类似:
code复制http://xxxx.luyouxia.com
复制这个地址,在外部网络的浏览器中访问
问题1:访问公网地址时出现"Invalid Host header"错误
解决方案:
typescript复制server: {
allowedHosts: ['xxxx.luyouxia.com']
}
pnpm dev)问题2:页面加载缓慢或部分资源无法加载
解决方案:
问题3:接口请求失败
解决方案:
当开发完成后,可以使用以下命令构建生产版本:
bash复制pnpm build
构建完成后,静态文件会生成在dist目录中,可以将其部署到任何静态文件服务器。
本地部署:
bash复制pnpm install -g serve
serve -s dist
Nginx部署:
nginx复制server {
listen 80;
server_name your-domain.com;
location / {
root /path/to/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
}
Docker部署:
dockerfile复制FROM nginx:alpine
COPY dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
SoybeanAdmin支持多种主题配置方式:
内网穿透安全:
API安全:
前端安全:
在实际项目中,我通常会设置一个自动关闭映射的机制,比如只在工作时间开启穿透,或者设置访问密码来限制未授权访问。对于正式环境,还是建议部署到专业的云服务器,内网穿透更适合开发和临时演示场景。