project-format

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Steedos Project Format | Steedos 项目格式

Steedos 项目格式

Overview | 概述

概述

A Steedos project is a Node.js/TypeScript project that runs the Steedos platform. This is the standard structure for creating Steedos applications.
Steedos 项目是运行 Steedos 平台的 Node.js/TypeScript 项目。这是创建 Steedos 应用的标准结构。
Steedos项目是运行Steedos平台的Node.js/TypeScript项目,是创建Steedos应用的标准结构。

Technology Stack | 技术栈

技术栈

  • Platform: Steedos (华炎魔方) - Enterprise Low-Code Platform
  • Backend: Node.js + TypeScript + Moleculer microservices
  • Frontend: React + Amis (Baidu low-code UI framework)
  • Metadata: YAML files (.object.yml, .trigger.js, .action.js)
  • Databases: MongoDB (metadata), PostgreSQL/MySQL (business data)
  • Package Manager: Yarn 3.8.7 or NPM
  • 平台:Steedos(华炎魔方)- 企业低代码平台
  • 后端:Node.js + TypeScript + Moleculer微服务
  • 前端:React + Amis(百度低代码UI框架)
  • 元数据:YAML文件(.object.yml、.trigger.js、.action.js)
  • 数据库:MongoDB(存储元数据)、PostgreSQL/MySQL(存储业务数据)
  • 包管理器:Yarn 3.8.7 或 NPM

Minimal Project Structure | 最小项目结构

最小项目结构

my-steedos-project/
├── package.json              # NPM package configuration (REQUIRED)
├── steedos-config.yml        # Steedos configuration (REQUIRED)
├── .env                      # Environment variables (RECOMMENDED)
├── .gitignore               # Git ignore rules
└── steedos-packages/        # Custom packages (OPTIONAL)
    └── my-package/
        └── ...
my-steedos-project/
├── package.json              # NPM包配置文件(必需)
├── steedos-config.yml        # Steedos配置文件(必需)
├── .env                      # 环境变量文件(推荐)
├── .gitignore               # Git忽略规则文件
└── steedos-packages/        # 自定义包目录(可选)
    └── my-package/
        └── ...

Required Files | 必需文件

必需文件

1. package.json (REQUIRED)

1. package.json(必需)

json
{
  "name": "my-steedos-project",
  "version": "0.0.1",
  "private": true,
  "workspaces": [
    "steedos-packages/*"
  ],
  "scripts": {
    "start": "steedos start",
    "build": "lerna run build"
  },
  "dependencies": {
    "@steedos/server": "latest"
  }
}
Key Points:
  • @steedos/server
    dependency is REQUIRED
  • workspaces
    for custom packages (if using Yarn)
  • start
    script to run Steedos
json
{
  "name": "my-steedos-project",
  "version": "0.0.1",
  "private": true,
  "workspaces": [
    "steedos-packages/*"
  ],
  "scripts": {
    "start": "steedos start",
    "build": "lerna run build"
  },
  "dependencies": {
    "@steedos/server": "latest"
  }
}
关键点:
  • 必须依赖
    @steedos/server
  • 若使用Yarn,需配置
    workspaces
    以支持自定义包
  • 配置
    start
    脚本用于启动Steedos

2. steedos-config.yml (REQUIRED)

2. steedos-config.yml(必需)

This file is REQUIRED by Steedos, even if empty.
yaml
undefined
Steedos要求必须存在此文件,即使内容为空。
yaml
undefined

Empty file is acceptable

空文件也可

Or add configuration:

或添加配置:

metadata_packages:
  • '@steedos-packages/my-package'

**Note**: Can be empty, but must exist.
metadata_packages:
  • '@steedos-packages/my-package'

**注意**:文件可以为空,但必须存在。

3. .env (RECOMMENDED)

3. .env(推荐)

env
undefined
env
undefined

Server Configuration

服务器配置

PORT=5100 ROOT_URL=http://localhost:5100
PORT=5100 ROOT_URL=http://localhost:5100

Database

数据库配置

MONGO_URL=mongodb://127.0.0.1:27017/steedos
MONGO_URL=mongodb://127.0.0.1:27017/steedos

Message Queue & Cache

消息队列与缓存

TRANSPORTER=redis://127.0.0.1:6379 CACHER=redis://127.0.0.1:6379/1
TRANSPORTER=redis://127.0.0.1:6379 CACHER=redis://127.0.0.1:6379/1

Storage

存储配置

STEEDOS_STORAGE_DIR=./steedos-storage
STEEDOS_STORAGE_DIR=./steedos-storage

Logging

日志配置

B6_LOG_LEVEL=warn
undefined
B6_LOG_LEVEL=warn
undefined

Complete Project Structure | 完整项目结构

完整项目结构

my-steedos-project/
├── package.json                      # NPM configuration
├── steedos-config.yml                # Steedos configuration
├── .env                              # Environment variables
├── .gitignore                        # Git ignore
├── yarn.lock / package-lock.json    # Dependency lock file
├── node_modules/                     # Dependencies
├── steedos-storage/                  # File storage
└── steedos-packages/                 # Custom packages
    ├── package-1/
    │   ├── package.json
    │   ├── package.service.js
    │   └── main/default/
    │       ├── objects/
    │       ├── applications/
    │       ├── triggers/
    │       └── pages/
    └── package-2/
        └── ...
my-steedos-project/
├── package.json                      # NPM配置文件
├── steedos-config.yml                # Steedos配置文件
├── .env                              # 环境变量文件
├── .gitignore                        # Git忽略规则文件
├── yarn.lock / package-lock.json    # 依赖锁定文件
├── node_modules/                     # 依赖包目录
├── steedos-storage/                  # 文件存储目录
└── steedos-packages/                 # 自定义包目录
    ├── package-1/
    │   ├── package.json
    │   ├── package.service.js
    │   └── main/default/
    │       ├── objects/
    │       ├── applications/
    │       ├── triggers/
    │       └── pages/
    └── package-2/
        └── ...

Installation & Setup | 安装和设置

安装和设置

Step 1: Create Project Directory

步骤1:创建项目目录

bash
mkdir my-steedos-project
cd my-steedos-project
bash
mkdir my-steedos-project
cd my-steedos-project

Step 2: Create package.json

步骤2:创建package.json

bash
npm init -y
bash
npm init -y

Edit package.json to add required fields

编辑package.json添加必填字段

undefined
undefined

Step 3: Create steedos-config.yml

步骤3:创建steedos-config.yml

bash
touch steedos-config.yml
bash
touch steedos-config.yml

Step 4: Create .env

步骤4:创建.env

bash
cat > .env << EOF
PORT=5100
ROOT_URL=http://localhost:5100
MONGO_URL=mongodb://127.0.0.1:27017/steedos
TRANSPORTER=redis://127.0.0.1:6379
CACHER=redis://127.0.0.1:6379/1
STEEDOS_STORAGE_DIR=./steedos-storage
B6_LOG_LEVEL=warn
EOF
bash
cat > .env << EOF
PORT=5100
ROOT_URL=http://localhost:5100
MONGO_URL=mongodb://127.0.0.1:27017/steedos
TRANSPORTER=redis://127.0.0.1:6379
CACHER=redis://127.0.0.1:6379/1
STEEDOS_STORAGE_DIR=./steedos-storage
B6_LOG_LEVEL=warn
EOF

Step 5: Install Dependencies

步骤5:安装依赖

bash
npm install @steedos/server
bash
npm install @steedos/server

or

yarn add @steedos/server
undefined
yarn add @steedos/server
undefined

Step 6: Start Server

步骤6:启动服务器

bash
npm start
bash
npm start

or

steedos start
undefined
steedos start
undefined

Creating with CLI | 使用 CLI 创建

使用CLI创建

Steedos provides a CLI tool for quick project creation:
bash
undefined
Steedos提供CLI工具用于快速创建项目:
bash
undefined

Install CLI

安装CLI

npm install -g @steedos/cli
npm install -g @steedos/cli

Create project

创建项目

steedos create my-project cd my-project
steedos create my-project cd my-project

Start

启动项目

npm start
undefined
npm start
undefined

Workspace Configuration | 工作区配置

工作区配置

If using Yarn workspaces (recommended for multiple packages):
json
{
  "name": "my-steedos-project",
  "private": true,
  "workspaces": [
    "steedos-packages/*"
  ]
}
This allows packages to be:
  • Developed independently
  • Shared across projects
  • Version controlled separately
若使用Yarn工作区(多包项目推荐):
json
{
  "name": "my-steedos-project",
  "private": true,
  "workspaces": [
    "steedos-packages/*"
  ]
}
此配置允许包:
  • 独立开发
  • 在多个项目间共享
  • 单独进行版本控制

Git Configuration | Git 配置

Git配置

Recommended .gitignore:
undefined
推荐的.gitignore内容:
undefined

Dependencies

依赖目录

node_modules/ .yarn/ .pnp.*
node_modules/ .yarn/ .pnp.*

Environment

环境配置

.env .env.local
.env .env.local

Storage

存储目录

steedos-storage/ .steedos/
steedos-storage/ .steedos/

Logs

日志目录

logs/ *.log
logs/ *.log

Build

构建产物

dist/ build/ .cache/
dist/ build/ .cache/

IDE

IDE配置

.vscode/ .idea/ *.swp *.swo
undefined
.vscode/ .idea/ *.swp *.swo
undefined

Best Practices | 最佳实践

最佳实践

  1. Version Control:
    • Always commit
      package.json
      ,
      steedos-config.yml
    • Use
      .gitignore
      for
      node_modules/
      ,
      .env
      , storage
  2. Environment Variables:
    • Use
      .env
      for local development
    • Use environment variables for production
    • Never commit
      .env
      to version control
  3. Package Organization:
    • Group related functionality in packages
    • Use meaningful package names
    • Follow naming convention:
      @steedos-packages/[name]
  4. Dependencies:
    • Lock dependency versions in production
    • Regularly update dependencies
    • Use
      yarn.lock
      or
      package-lock.json
  1. 版本控制
    • 务必提交
      package.json
      steedos-config.yml
    • 使用
      .gitignore
      忽略
      node_modules/
      .env
      、存储目录
  2. 环境变量
    • 本地开发使用
      .env
    • 生产环境使用系统环境变量
    • 切勿将
      .env
      提交到版本控制系统
  3. 包组织
    • 将相关功能归类到同一个包中
    • 使用有意义的包名称
    • 遵循命名规范:
      @steedos-packages/[名称]
  4. 依赖管理
    • 生产环境锁定依赖版本
    • 定期更新依赖
    • 使用
      yarn.lock
      package-lock.json

Common Commands | 常用命令

常用命令

bash
undefined
bash
undefined

Start development server

启动开发服务器

npm start
npm start

Build packages

构建包

npm run build
npm run build

Install dependencies

安装依赖

npm install
npm install

or

yarn install
yarn install

Add new package

添加新包

cd steedos-packages mkdir my-package cd my-package npm init -y
undefined
cd steedos-packages mkdir my-package cd my-package npm init -y
undefined

Troubleshooting | 故障排除

故障排除

Issue: Server won't start

问题:服务器无法启动

  • Check if
    steedos-config.yml
    exists
  • Verify MongoDB and Redis are running
  • Check
    .env
    configuration
  • Review logs for errors
  • 检查
    steedos-config.yml
    是否存在
  • 验证MongoDB和Redis是否正常运行
  • 检查
    .env
    配置是否正确
  • 查看日志排查错误

Issue: Packages not loading

问题:包无法加载

  • Verify package structure
  • Check
    steedos-config.yml
    configuration
  • Restart server after changes
  • Check console for error messages
  • 验证包结构是否正确
  • 检查
    steedos-config.yml
    配置
  • 修改后重启服务器
  • 查看控制台错误信息

Issue: Port already in use

问题:端口已被占用

  • Change
    PORT
    in
    .env
  • Kill existing process:
    lsof -ti:5100 | xargs kill
  • 修改
    .env
    中的
    PORT
  • 终止占用进程:
    lsof -ti:5100 | xargs kill

References | 参考资料

参考资料