之前我们在这篇文章青岛大学开源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. c#:HttpClient加标头

    using (var client = new HttpClient()) { string requestUrl = string.Format("{0}{1}", ConstD ...

  2. C#关闭子窗口而不释放子窗口对象的问题解决

    在网上找来一些方式,感觉还都不错,下面给出方式: 在线扫描相机的调试过程中,需要开辟调试界面来进行位置的配置.调试结束后,一种常用的方式是将调试参数保存并在下次启动时加载.另一种简单方式是直接使用该参 ...

  3. mongodb 权限设置--用户名、密码、端口

    转自:http://www.cnblogs.com/valor-xh/p/6369432.html 一.关于权限的默认配置 在默认情况下,mongod是监听在0.0.0.0之上的,任何客户端都可以直接 ...

  4. 无法安装程序包MiniProfiler

    抱歉,之前给错了解决问题的答案,今天来修改一下,时间:2018年9月25日23:19:02错误 无法安装程序包“MiniProfiler.EF6 4.0.138”.你正在尝试将此程序包安装到目标为“. ...

  5. photoshop使用笔记-制作古代印章

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 第一步:新建图层400x400像素,白色背景的图层,并且复制图层 第二步:设置前景色为R230,G30,B30 第三步:选择圆角 ...

  6. Python 函数的作用域

    python中的作用域有4种: 名称 介绍 L local,局部作用域,函数中定义的变量: E enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的: B ...

  7. ionic3用极光推送笔记

    安卓 环境:ionic3  + 极光 "jpush-phonegap-plugin": "^3.4.3" "cordova-plugin-jcore& ...

  8. SD从零开始65 框架协议(Outline Agreement)

    SD从零开始65 框架协议(Outline Agreement) 合同-销售凭证类型Contracts-Sales Document Types 框架协议在几乎所有的业务处理中都扮演重要的角色:客户和 ...

  9. ArcGIS JavaScript API动态图层

      矢量动态图层     <!DOCTYPE HTML> <html>   <head> <meta http-equiv="Content-Typ ...

  10. http-server服务跨域设置

    http-server --cors -p 9999 ------------------------------------------------------------------------- ...