创建项目 - mycolorway/tao_on_rails GitHub Wiki
新项目模版
Tao on Rails 提供了一个Application Template,用来生成基于Tao on Rails的新项目:
rails new app_name -m https://git.io/vSvyw
这个新项目模版会在 Rails 默认的 Application Generator 的基础上做这些事情:
app/assets/javascripts/application.js
替换为app/assets/javascripts/application.coffee
,增加了 TaoApplication 的初始化;- 移除
app/assets/javascripts/cable.js
,ActionCable 的初始化会放到application.coffee
里面; app/assets/javascripts/application.css
替换为app/assets/javascripts/application.scss
,增加了基本的全局样式;- 修改
app/views/layouts/application.html.erb
,用tao_page
渲染页面内容; - 增加
app/components/application_component.rb
,项目里的 TaoComponent 都应该继承自 ApplicationComponent; - 增加项目首页(home)的相关资源
项目文件结构
Tao on Rails在项目文件结构上有一些约定:
后端 Component 子类
跟业务相关的放到 app/components
,文件夹里面再按资源分子文件夹;
跟业务无关的放到 lib/components
文件夹。
前端 TaoComponent 子类
跟业务相关的放到 app/assets/javascripts/components
文件夹,如果是某一种具体资源相关的应该放到 app/assets/javascripts/resources/components
文件夹;
跟业务无关的放到 lib/assets/javascripts/components
文件夹;
stylesheets
的文件结构跟 javascripts
一样。
Component 模版文件
跟业务相关的模版放到 app/views/components
,文件夹里再按照资源分子文件夹;
跟业务无关的模版放到 lib/views/components
文件夹。
Assets Variant
很多时候一个项目里面需要分开打包多套前端 assets 文件,比如知人的桌面版和移动版会使用两套不同的 assets 文件,而且即使同样都是桌面版,不同的角色访问也可能会分为不同的版本,这个时候我们的前端脚本和样式,在按照资源拆分文件夹的基础上,需要增加一种新的管理维度——资源版本(Assets Variant):
|- app
| |- assets
| |- javascripts
| |- employee_phone
| +- resource1
| +- resource2
| |- application.coffee
| +- employee_desktop
| +- hr_desktop
| |- application.coffee
每个资源版本都有自己独立的 Applicaiton 子类,这些子类可以继承自一个全局的 Application 类,这样的继承关系可以方便的实现一些全局通用的初始化逻辑,同时保持不同版本的特殊性。