project-format
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSteedos 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:
- dependency is REQUIRED
@steedos/server - for custom packages (if using Yarn)
workspaces - script to run Steedos
start
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 - 配置脚本用于启动Steedos
start
2. steedos-config.yml (REQUIRED)
2. steedos-config.yml(必需)
This file is REQUIRED by Steedos, even if empty.
yaml
undefinedSteedos要求必须存在此文件,即使内容为空。
yaml
undefinedEmpty 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
undefinedenv
undefinedServer 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
undefinedB6_LOG_LEVEL=warn
undefinedComplete 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-projectbash
mkdir my-steedos-project
cd my-steedos-projectStep 2: Create package.json
步骤2:创建package.json
bash
npm init -ybash
npm init -yEdit package.json to add required fields
编辑package.json添加必填字段
undefinedundefinedStep 3: Create steedos-config.yml
步骤3:创建steedos-config.yml
bash
touch steedos-config.ymlbash
touch steedos-config.ymlStep 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
EOFbash
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
EOFStep 5: Install Dependencies
步骤5:安装依赖
bash
npm install @steedos/serverbash
npm install @steedos/serveror
或
yarn add @steedos/server
undefinedyarn add @steedos/server
undefinedStep 6: Start Server
步骤6:启动服务器
bash
npm startbash
npm startor
或
steedos start
undefinedsteedos start
undefinedCreating with CLI | 使用 CLI 创建
使用CLI创建
Steedos provides a CLI tool for quick project creation:
bash
undefinedSteedos提供CLI工具用于快速创建项目:
bash
undefinedInstall 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
undefinednpm start
undefinedWorkspace 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内容:
undefinedDependencies
依赖目录
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
undefinedBest Practices | 最佳实践
最佳实践
-
Version Control:
- Always commit ,
package.jsonsteedos-config.yml - Use for
.gitignore,node_modules/, storage.env
- Always commit
-
Environment Variables:
- Use for local development
.env - Use environment variables for production
- Never commit to version control
.env
- Use
-
Package Organization:
- Group related functionality in packages
- Use meaningful package names
- Follow naming convention:
@steedos-packages/[name]
-
Dependencies:
- Lock dependency versions in production
- Regularly update dependencies
- Use or
yarn.lockpackage-lock.json
-
版本控制:
- 务必提交、
package.jsonsteedos-config.yml - 使用忽略
.gitignore、node_modules/、存储目录.env
- 务必提交
-
环境变量:
- 本地开发使用
.env - 生产环境使用系统环境变量
- 切勿将提交到版本控制系统
.env
- 本地开发使用
-
包组织:
- 将相关功能归类到同一个包中
- 使用有意义的包名称
- 遵循命名规范:
@steedos-packages/[名称]
-
依赖管理:
- 生产环境锁定依赖版本
- 定期更新依赖
- 使用或
yarn.lockpackage-lock.json
Common Commands | 常用命令
常用命令
bash
undefinedbash
undefinedStart 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
undefinedcd steedos-packages
mkdir my-package
cd my-package
npm init -y
undefinedTroubleshooting | 故障排除
故障排除
Issue: Server won't start
问题:服务器无法启动
- Check if exists
steedos-config.yml - Verify MongoDB and Redis are running
- Check configuration
.env - Review logs for errors
- 检查是否存在
steedos-config.yml - 验证MongoDB和Redis是否正常运行
- 检查配置是否正确
.env - 查看日志排查错误
Issue: Packages not loading
问题:包无法加载
- Verify package structure
- Check configuration
steedos-config.yml - Restart server after changes
- Check console for error messages
- 验证包结构是否正确
- 检查配置
steedos-config.yml - 修改后重启服务器
- 查看控制台错误信息
Issue: Port already in use
问题:端口已被占用
- Change in
PORT.env - Kill existing process:
lsof -ti:5100 | xargs kill
- 修改中的
.env值PORT - 终止占用进程:
lsof -ti:5100 | xargs kill