nocobase/docs/guide/kernel-principle/installation-startup.zh-CN.md
chenos ca7af9c8cc
feat: new version of the documentation (#95)
* feat: new version of the documentation

* feat: add English catalog translation

* Update quickstart.md

* Update quickstart.zh-CN.md

* Update quickstart.zh-CN.md

* Update quickstart.zh-CN.md

* Update quickstart.zh-CN.md

* feat: update quickstart

* update doc

* update pepository api doc

Co-authored-by: ChengLei Shao <chareice@live.com>
2021-10-28 22:55:51 +08:00

2.2 KiB
Raw Blame History

order
3

项目安装和启动流程

项目安装

yarn nocobase init
  • app.constructor()
  • app.parse()
    • yarn nocobase init
      初始化安装
      • app.load()
        加载配置
        • app.emitAsync('beforeLoad')
          所有配置加载之前的钩子
        • app.pluginManager.load()
          按顺序载入所有激活的插件的配置
          • 加载 plugin-collections 的配置
          • 添加 app.on('init') 监听
            • db.getModel('collections').load()
              把 collections 表的配置都导入 db.table()
            • app.db.sync({force: false})
              再执行 sync创建 collections 表里配置的数据表
        • app.emitAsync('afterLoad')
          所有配置加载之后的钩子
        • app.db.sync({force: true})
          根据配置生成数据表、字段、索引等
        • app.emitAsync('init')
          执行所有 init listeners一般是初始化的数据操作
          • 触发 plugin-collections 的 init 事件,数据表就创建好了
        • app.stop()
          结束

项目启动

yarn nocobase start --init --sync
# --init 用于启动时快捷安装
# --sync 开发环境时,当 app.collection() 有更新时快速建表或更新表
  • app.constructor()
  • app.parse()
    • yarn nocobase start
      初始化安装
      • app.load()
        加载配置
        • app.emitAsync('beforeLoad')
          所有配置加载之前的钩子
        • app.pluginManager.load() 按顺序载入所有激活的插件的配置
          • 加载 plugin-collections 的配置
            • 添加 app.on('start') 监听
            • db.getModel('collections').load()
              把 collections 表的配置都导入 db.table(),在 start 流程里不需要再 db.sync
        • app.emitAsync('afterLoad')
          所有配置加载之后的钩子
        • app.db.sync({force: false})
          yarn nocobase start --sync 有更新时快速建表或更新表
          yarn nocobase start --init 快捷 init
        • app.emitAsync('init')
          yarn nocobase start --init 快捷 init
        • app.emitAsync('start')
          执行所有 start listeners一般是从数据表里读取一些必要的数据
        • app.listen() 启动 http server