该项目为吉林大学开源镜像站前端,原本计划用于吉林大学开源镜像站建设。由于种种原因,该项目未能选作生产环境。现将其开源。项目整体为前后端分离架构,采用 Vue-CLI 框架编写完成。本项目已移除吉林大学的徽标,所有有关吉林大学的徽标均需要获得吉林大学相关部门审批后使用。
本项目采用 npm 管理。在构建本项目前,请确保安装了node.js
并将本项目 clone 到本地。在运行本项目前,请先运行如下命令以安装依赖包:
npm install
你可能需要准备一些后端的样例数据以满足前端的请求。例如tunasync的 /jobs API。样例数据已经放在了public文件夹中。在生产环境下,前端所有请求的数据均是动态生成的。若您没有准备后端数据,在运行项目后出现网络请求错误是正常的。
运行如下命令以在本地运行该项目:
npm run serve
运行如下命令以在本地编译生产环境代码:
npm run build
最终生成的生产环境代码在dist/
目录下。
docs/ 开发文档
public/ 用于构建生产环境代码的静态资源
src/ 源代码
.browserslistrc 浏览器兼容性配置文件
.eslintrc.js ESLint 配置文件
.gitignore 将不必要的文件排除在Git的管理中
babel.config.js Babel配置文件
jsconfig.json 项目JavaScript相关配置
package-lock.json npm依赖管理文件
package.json npm依赖管理文件
vue.config.js Vue配置文件
README.md 项目README
具体的源代码目录结构请见docs/
以AGPLv3(GNU Affero General Public License version 3)协议授权。
本项目在开发过程中的交互设计、代码逻辑受到了目前多个镜像站的启发,在此特别鸣谢 清华大学开源软件镜像站、哈尔滨工业大学开源镜像站、中科大开源软件镜像站。
特别鸣谢 @TechCiel 对本项目的大力支持和帮助。
The project is the frontend of Jilin University Open-source Mirrors website. It seperates the frontend and backend completely, using Vue-CLI framework.
This project is managed by npm. Before building this project, please make sure you have node.js
installed and clone this project to the local. Before running this project, please run the following command to install the dependencies.
npm install
You may need to prepare some backend sample data to satisfy the frontend requests. For example, the /jobs API for tunasync. The sample files are put inside public/
. In a production environment, all the responses from backend are dynamically generated by the production server, see development documentation for the backend APIs. If you do not prepare the backend data, you will get network errors after running the project.
Run the following command to build for development:
npm run serve
Run the following command to compile for production:
npm run build
The generated code for production is stored in dist/
.
docs/ development docs
public/ static files for production compilation
src/ source code
.browserslistrc config file for browser compatibility
.eslintrc.js eslint config file
.gitignore exclude some files from git
babel.config.js babel config file
jsconfig.json config file for javascript
package-lock.json npm dependencies config file
package.json npm dependencies config file
vue.config.js Vue config file
README.md README
For detailed structure of src/
, see docs/
Licensed under GNU Affero General Public License version 3.
Some designs of this project are inspired by some mirror websites, in particular, thanks to TUNA, HITLUG, USTCLUG.
Special thanks to @TechCiel for his great support and help to this project.