slack-app-scaffold
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSlack App Scaffold
Slack应用快速搭建模板
Bolt for JavaScript + Slack CLI is the 2026 default. Optimize for fast local runs, clear handlers, and safe deploys.
Bolt for JavaScript + Slack CLI是2026年的默认方案。针对本地快速运行、清晰的处理器逻辑和安全部署进行了优化。
Stack (Default)
技术栈(默认)
- Runtime: Node.js (LTS)
- Framework:
@slack/bolt - Tooling: Slack CLI ()
slack - Config: Slack manifest via CLI-generated project
- 运行时:Node.js(LTS版本)
- 框架:
@slack/bolt - 工具:Slack CLI(命令)
slack - 配置:通过CLI生成项目自动创建的Slack清单
Core CLI Commands
核心CLI命令
bash
undefinedbash
undefinedCreate new Slack app project
创建新的Slack应用项目
slack create my-slack-app
slack create my-slack-app
Run locally (socket mode / dev env)
本地运行(Socket模式 / 开发环境)
cd my-slack-app
slack run
cd my-slack-app
slack run
Deploy to Slack-hosted runtime / target env
部署到Slack托管运行时 / 目标环境
slack deploy
undefinedslack deploy
undefinedWorkflow (CLI-First)
工作流(CLI优先)
- Identify integration points in existing functionality.
- Scaffold app with .
slack create - Model capabilities in the manifest (scopes, events, commands, interactivity).
- Implement handlers in Bolt (events, commands, actions, views/modals).
- Run locally with and validate in a dev workspace.
slack run - Deploy with .
slack deploy
- 识别现有功能中的集成点。
- 使用命令搭建应用模板。
slack create - 在清单中定义应用能力(权限范围、事件、命令、交互性)。
- 在Bolt中实现处理器(事件、命令、动作、视图/模态框)。
- 使用本地运行,并在开发工作区中验证功能。
slack run - 使用部署应用。
slack deploy
Project Structure (Typical)
典型项目结构
text
my-slack-app/
├── app/
│ ├── app.js # Bolt app bootstrap
│ ├── listeners/ # Events, commands, actions, views
│ ├── services/ # Integration layer to existing functionality
│ └── middleware/ # Auth, validation, shared guards
├── manifest.json # Slack app manifest (CLI-managed)
├── package.json
└── README.mdDesign rule: keep Slack handlers thin; push real work into .
services/text
my-slack-app/
├── app/
│ ├── app.js # Bolt应用启动文件
│ ├── listeners/ # 事件、命令、动作、视图处理器
│ ├── services/ # 与现有功能的集成层
│ └── middleware/ # 认证、验证、共享守卫逻辑
├── manifest.json # Slack应用清单(由CLI管理)
├── package.json
└── README.md设计原则:保持Slack处理器逻辑简洁;将实际业务逻辑放在目录中。
services/Common Use Cases
常见使用场景
- Notifications: post messages from existing jobs or webhooks.
- Slash commands: wrap existing scripts or APIs behind .
/commands - Workflows: compose multi-step flows with Slack-native triggers.
- Modals: collect structured input, then call existing systems.
- 通知功能:从现有任务或Webhook发送消息。
- 斜杠命令:将现有脚本或API封装在之后。
/命令 - 工作流:使用Slack原生触发器组合多步骤流程。
- 模态框:收集结构化输入后调用现有系统。
Implementation Notes
实现注意事项
- Map each Slack surface to one listener module.
- Normalize inputs at the edge; pass clean DTOs inward.
- Acknowledge fast (), then do work.
ack() - Centralize Slack Web API calls behind a small service.
See for concrete patterns.
references/bolt-patterns.md- 每个Slack交互界面对应一个处理器模块。
- 在入口处标准化输入;向内传递干净的DTO(数据传输对象)。
- 快速调用确认请求,再执行后续工作。
ack() - 将Slack Web API调用集中封装在一个小型服务中。
具体实现模式请参考。
references/bolt-patterns.mdVerification Steps
验证步骤
bash
undefinedbash
undefined1) Install deps
1) 安装依赖
npm install
npm install
2) Run locally
2) 本地运行
slack run
slack run
3) Lint/test if present
3) 若存在则执行代码检查/测试
npm test
npm test
4) Deploy
4) 部署应用
slack deploy
Manual checks in Slack workspace:
- Trigger each command or event once.
- Validate permissions/scopes match what handlers need.
- Confirm errors surface as user-visible messages, not silent failures.slack deploy
在Slack工作区中进行手动检查:
- 触发每个命令或事件至少一次。
- 验证权限/范围是否与处理器需求匹配。
- 确认错误会以用户可见的消息形式展示,而非静默失败。