开发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