之前我们在这篇文章青岛大学开源OJ平台搭建

讲了关于它的安装和部署。

今天我们讨论如何对其进行二次开发。首先谈谈前端的二次开发。

如果想要对青岛大学的OJ项目进行二次开发,目前我觉得要满足这么几个要求?

第一、前端使用的是Vue.js,你需要对Vue.js毕竟熟悉;

第二、nodejs和webpack你最好也要熟悉,因为部署环境需要和打包的时候也需要;

Vue.js和Node.js教程你可以参考如下网址:

Vue.js:https://cn.vuejs.org/

Node.js:https://nodejs.org/en/

OnlineJudgeFE地址为:https://github.com/QingdaoU/OnlineJudgeFE

当然了,还可以去w3cschool或者菜鸟教程。

虽然说进入OlineJudgeFE地址,有对应的教程教你,但是也有潜在的坑,其实主要的坑还是在node.js上。大家按照我这个就可以避免这个坑。

一、部署环境准备

node.js环境安装和配置,我的服务器操作系统是Ubuntu16.04,ubuntu安装软件很简单,通常sudo apt-get install 安装包名称 即可达到安装的目的。但是node.js默认通过这种安装版本会不符合官方文档上面要求的那样。所以建议最好还是不要通过这种形式安装。

node.js下载地址:https://nodejs.org/dist/

可以选择对应的版本,最好是高于8.12.0或者等于8.12.0。

我是通过源码(已经编译好了)安装,步骤如下:

wget https://nodejs.org/dist/v8.9.3/node-v8.9.3-linux-x64.tar.xz
tar -xvf node-v8.9.3-linux-x64.tar.xz
sudo mv node-v8.9.3-linux-x64 /usr/local
sudo ln -s /usr/local/node-v8.9.3-linux-x64/bin/node /usr/local/bin/node
sudo ln -s /usr/local/node-v8.9.3-linux-x64/bin/npm /usr/local/bin/npm

二、部署

步骤如下:

git clone https://github.com/QingdaoU/OnlineJudgeFE.git

cd OnlineJudgeFE

npm install

NODE_ENV=development npm run build:dll

export TARGET=https://qduoj.com/
#target指的是后台代理服务器地址,通常为judgeserver
npm run dev

最终控制台输出的结果如下图所示(成功):

通常失败的话,一般都是npm install或者NODE_ENV=development npm run build:dll,原因就是因为node.js的版本及其npm问题。按照我上述的nodejs安装教程,就可以避免这种情况的出现。

另外注意,如果改动了前端代码重新部署,不是直接进入OnlineJudgeFE目录直接执行npm run dev就可以的。

需要依次输入如此命令来完成部署,一步都不能省略:

NODE_ENV=development npm run build:dll

export TARGET=https://qduoj.com/

npm run dev

如果不按照上面的流程就直接执行npm run dev会出现如下错误:

对了,如果你觉得英文阅读有难度体验不好可以进入到对应的目录修改一个文件即可。

主要cd 到OnlineJudgeFE/src/i18n目录

修改index.js文件即可,index.js文件内容,如图:

最终展示的效果是这样的,如图所示:

OnlineJudgeFE之前端二次开发的更多相关文章

  1. qduoj~前端~二次开发

    青岛大学qdu的onlinejudge是js的写的前端,框架是vue.js,在nodejs上部署运行,其实整体运行还是建立在docker的容器虚拟环境里,这里暂时不需要docker.安装环境是Ubun ...

  2. qduoj前端二次开发简略流程

    为缩减篇幅,已略去nodejs.git等软件安装操作,若有疑问请搜索相关教程. 为区分win和ubuntu的命令,作如下约定: $ cd //以$标记win下命令 # cd //以#标记linux命令 ...

  3. [github项目]基于百度地图二次开发实现的车辆监管(包含车辆定位、车辆图片和方向控制,电子围栏,图形绘制等功能)前端实现(不包含后端实现)

    前言:基于百度地图javascript版本开发,百度地图中所用的key已承诺仅用于测试,不用于商业用途 注:本文所有代码可以到github上进行下载,github地址:http://map.eguid ...

  4. Nopcommerce 二次开发0

    Nopcommerce  是国外的一个高质量的开源b2c网站系统,基于EntityFramework6.0和MVC5.0,使用Razor模板引擎,有很强的插件机制,包括支付配送功能都是通过插件来实现的 ...

  5. 蓝凌OA二次开发手册

    1.蓝凌OA表单前端调用后台数据 一.后台存储过程: create procedure sp_test @ftext nvarchar(50) as begin select @ftext as '测 ...

  6. Silverlight开源框架SL提供便捷的二次开发银光框架

    Silverlight开发框架SilverFrame欢迎咨询 基于Silverlight4.0开发,兼容Silverlight 5.0,SQLServer2005数据库.WCF: 本框架有清爽的前端界 ...

  7. shopnc二次开发(二)

    一般来说二次开发,多数就是修改界面和增加功能这两个需求 先说修改界面 mvc 架构的程序,在界面这里,基本就是调用数据. 常见的界面数据构架有三种 1.是业务端或者是控制端数据驱动界面,基本上是后台输 ...

  8. EcTouch二次开发

    一.EcTouch简介 1.1. 什么是ECTOUCH ECTouch是上海商创网络科技有限公司推出的一款开源免费移动商城网店系统,可以在手机上面卖商品的电子商务软件系统.能够帮助企业和个人快速构建手 ...

  9. 搭建rtmp直播流服务之4:videojs和ckPlayer开源播放器二次开发(播放rtmp、hls直播流及普通视频)

    前面几章讲解了使用 nginx-rtmp搭建直播流媒体服务器; ffmpeg推流到nginx-rtmp服务器; java通过命令行调用ffmpeg实现推流服务; 从数据源获取,到使用ffmpeg推流, ...

随机推荐

  1. AJAX 基本结构 数据加载

    AJAX -- 网页数据异步加载 .ashx 一般处理程序   json 数据格式,在不同的语言之间传递数据 对象格式:     "{"key":"value& ...

  2. [PHP] 算法-两个n位的二进制整数相加问题PHP实现

    两个n位二进制数分别存储在两个n元数组A和B中,这两个整数的和存在一个n+1元的数组C中答:此问题主要是考察相加进位的问题,元素1+1 =0 并且往前进一位ADD-BINARY(A,B) C=new ...

  3. Apache:详解QSA,PT,L,E参数的作用

    [QSA] 当被替换的URI包含有query string的时候,apache的默认行为是,丢弃原有的query string 并直接使用新产生的query string,如果加上了[QSA]选项,那 ...

  4. cordova极光推送插件使用

    首先是在极光官网注册登录账号,然后创建推送应用,创建完应用之后,点击打开应用,设置应用的包名,保存: 然后回到应用主界面,看到AppKey,以及MasterSecret,这时候MasterSecret ...

  5. jsp使用servlet实现文件上传

    1.在index.jsp中写入以下代码 <form method="post" action="demo3" enctype="multipar ...

  6. 初学HTML-5

    表格标签:用来给一堆数据添加表格语义. 格式:<table> <tr> <td></td> </tr> </table> tab ...

  7. js-QuickStart-base.js

    // 1.变量(Variables) var myVariable; myVariable = 'Bob'; // 数据类型 string number boolean array object // ...

  8. jquery绑定点击事件的三种写法

    一.用jquery动态绑定点击事件的写法 部分代码: <script type="text/javascript"> $(document).ready(functio ...

  9. vue和webpack打包 项目相对路径修改

    一般vue使用webpack打包是整个工程的根目录,但是很多情况下都是把vue打包后的文件在某子目录下. 修改: 1,打开index.js assetsPublicPath:'/' 改为: asset ...

  10. mysql主从复制报错(一主一从):从库报错Last_SQL_Errno: 1008

    配置完主从复制后(一主一从),在从库删了一个测试库,结果在从库上使用show slave status\G查看主从同步状态报如下错误:Last_Errno: 1008,经过排查得知:主从环境删除要先在 ...