开发discourse插件, 依赖的知识: ES6/SCSS/Ember.js/Rails/handlebars.
Ember是前端MVVM框架, 支持数据双向绑定/虚拟DOM, 模板引擎使用handlebars, 依赖jQuery(处理DOM兼容性操作), 遵循约定优于配置
原则(类似Rails).
discourse 本地环境搭建
依赖: ruby, postgres, redis 需要提前安装好.
macOS 安装Ruby2.6
brew install rbenv; rbenv init; rbenv install 2.6.2; # discourse依赖 Ruby 2.5+
(推荐) 用docker搭建本地 postgres, redis
# code db.yml
version: '3.1'
services:
redis:
container_name: redis
image: redis:alpine
ports:
- "6379:6379"
postgres:
container_name: postgres
image: postgres:9-alpine
ports:
- "5432:5432"
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
# docker-compose -f db.yml up -d # 启动 postgresql/redis
# docker restart postgres redis # 重启 postgresql/redis
git clone https://github.com/discourse/discourse.git;
# git checkout tags/v2.2.4; # 指定某个稳定的版本
code config/database.yml # 设定 postgres 数据库信息
development: # 设定正确用户名/密码
username: name
password: pass
host: localhost
host_names: # 本地论坛域名(不添加: 影响 hot reload)
- leon.lvh.me
bundle install; # 安装依赖
rake db:create db:migrate; # 创建数据库
# rails r "SiteSetting.min_password_length=8;SiteSetting.min_admin_password_length=8;" # 设定密码最少8位
rake admin:create # 创建用户, 输入Email/password/是否管理员
# rails r "u=User.find_by_email('test@test.com'); u.password='11112222'; u.save!;" # 修改用户密码
rails s -p 8000 # 启动论坛, 访问 localhost:8000