Home

Awesome

runcode

在线代码运行编辑器

语言支持度

代码格式化支持

Js-challenges

前端编程题挑战

创建题目

在项目根目录下运行

pnpm qs:create <你的题目名>

# 例如我创建 demo 题目
pnpm qs:create demo

运行完之后会在 question/FrontEnd 目录下生成以下文件

生成静态文件

在项目根目录下运行

pnpm qs:generate

运行后会在 server 目录下生成 qs.json 文件

然后启动服务端, 服务端 数据来源于 qs.json

开发

前置条件

nodejs >= 18.20.4

包管理工具 pnpm 安装

npm install pnpm -g

server

  1. 构建镜像

前置条件, 安装了 docker, docker 需要设置端口 为 2375

防火墙跟服务器安全组不要开放 2375 端口, 以免造成严重的安全问题, 详情参考 issues/24,

在 centos 7 端口修改方法: 在配置文件里 ExecStart=/usr/bin/dockerd 这串后面加上 -H tcp://0.0.0.0:2375 , 然后重启 docker 我的配置文件在 /usr/lib/systemd/system/docker.service 这个路径 配置文件示例

Alt text

未构建的镜像, 在编辑器里 run 代码时会报镜像 404, 所以开发过程中无需全部构建, 构建需要的语言环境即可

  1. 安装依赖

    cd server
    pnpm i
    
  2. 启动

    pnpm dev
    

client

  1. 安装依赖

    cd client
    pnpm i
    
  2. 编译 tailwindcss

    # 启动后另开终端启动服务
    pnpm build:tailwind:watch
    
  3. 启动服务

    # 起开发环境,需要起 server
    pnpm dev
    # 起生产环境
    pnpm prod
    

部署


server

  1. 服务端环境
  1. 编译

进入 server 目录

cd server
pnpm i
pnpm build
  1. 启动服务
pnpm deploy

client

进入 client 目录

  1. 安装依赖
pnpm i
  1. 构建
pnpm build
  1. 使用 nginx 代理静态资源, 构建好的静态资源在 dist 目录下

主要是 html 文件, 其他静态资源部署到我的 cdn 上了

commit 规范