# @dealops/bolt-prisma 中文文档

规范地址：https://npmcn.com/package/%40dealops/bolt-prisma/

版本：1\.0\.10
npm 元数据更新时间：2025-09-17T05:46:36.860Z
中文译文更新时间：2026-11-13T05:57:40.122Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40dealops/bolt-prisma
原文对照：https://npmcn.com/package/%40dealops/bolt-prisma/?lang=original
项目主页：https://github.com/Dealops/slack-bolt-extensions#readme
源码仓库：https://github.com/Dealops/slack-bolt-extensions

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：37 kB，19 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：5 个
- 首次发布：2025-08-22T19:19:09.678Z
- 最新版本发布：2025-09-17T05:46:36.616Z
- 近 30 天下载量：2163（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：3（近 12 个月 0 个）

## 中文简介

JavaScript 安装仓库扩展名 - Prisma

## 安装

```sh
npm install @dealops/bolt-prisma
```

也可以使用：`pnpm add @dealops/bolt-prisma`、`yarn add @dealops/bolt-prisma`、`bun add @dealops/bolt-prisma`

## README

## JavaScript 的布尔特: Prisma 安装 Store

本单元提供 `InstallationStore` 执行情况 [普里斯马](https://www.prisma.io/) 用户.

### 开始

您可以使用以下程序创建简单的节点应用项目 `package.json` 财务报告和审定财务报表 `tsconfig.json`当然,如果你想使用一些构建工具,例如 [网络软件包](https://webpack.js.org/),你可以自己走,并增加必要的依赖.

##### 软件包.json

```json
{
  "name": "bolt-prisma-app",
  "version": "0.1.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "rm -rf dist/ && tsc && npx ts-node src/index.ts"
  },
  "author": "Kazuhiro Sera",
  "license": "MIT",
  "dependencies": {
    "@slack/bolt": "^3.12.2",
    "@seratch_/bolt-prisma": "^1.0.0",
    "sqlite3": "4.2.0",
    "@prisma/client": "^3.9.2"
  },
  "devDependencies": {
    "prisma": "^3.9.2",
    "ts-node": "^10.5.0",
    "typescript": "^4.5.5"
  }
}
```

##### tsconfig.json (英语)

```json
{
  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "allowJs": true,
    "esModuleInterop": true,
    "outDir": "dist",
  },
  "include": ["src/**/*"]
}
```

##### 在 api. slack.com/ apps 创建一个新的 Slack 应用程序

下一步是创建一个新的Slack应用配置. 您可以为它使用以下 App Munification 配置数据 .

```yaml
display_information:
  name: prisma-oauth-test-app
features:
  bot_user:
    display_name: prisma-oauth-test-app
oauth_config:
  redirect_urls:
    - https://xxx.ngrok.io/slack/oauth_redirect
  scopes:
    bot:
      - commands
      - chat:write
      - app_mentions:read
settings:
  event_subscriptions:
    bot_events:
      - app_mention
  interactivity:
    is_enabled: true
  socket_mode_enabled: true
```

### 配置您的 Prisma 方案

下一步是配置您的 Prisma 计划 .

##### 棱镜/棱镜

```prisma
generator client {
    provider = "prisma-client-js"
}

datasource db {
    provider = "sqlite"
    url      = env("DATABASE_URL")
}

model SlackAppInstallation {
    @@map("slack_app_installation")

    id                              Int       @id @default(autoincrement())
    clientId                        String?   @map("client_id")
    appId                           String?   @map("app_id")
    enterpriseId                    String?   @map("enterprise_id")
    enterpriseName                  String?   @map("enterprise_name")
    enterpriseUrl                   String?   @map("enterprise_url")
    teamId                          String?   @map("team_id")
    teamName                        String?   @map("team_name")
    botToken                        String?   @map("bot_token")
    botId                           String?   @map("bot_id")
    botUserId                       String?   @map("bot_user_id")
    botScopes                       String?   @map("bot_scopes")
    botRefreshToken                 String?   @map("bot_refresh_token")
    botTokenExpiresAt               DateTime? @map("bot_token_expires_at")
    userId                          String?   @map("user_id")
    userToken                       String?   @map("user_token")
    userScopes                      String?   @map("user_scopes")
    userRefreshToken                String?   @map("user_refresh_token")
    userTokenExpiresAt              DateTime? @map("user_token_expires_at")
    incomingWebhookUrl              String?   @map("incoming_webhook_url")
    incomingWebhookChannel          String?   @map("incoming_webhook_channel")
    incomingWebhookChannelId        String?   @map("incoming_webhook_channel_id")
    incomingWebhookConfigurationUrl String?   @map("incoming_webhook_configuration_url")
    isEnterpriseInstall             Boolean   @default(false) @map("is_enterprise_install")
    tokenType                       String    @default("bot") @map("token_type")
    installedAt                     DateTime  @default(now()) @map("installed_at")
    // This is an example custom property
    memo                            String?
}
```

您可以通过运行以下的昏迷设置基于文件的数据库:

```bash
npm i
export DATABASE_URL="file:./dev.db"
npx prisma migrate dev --name init
npx prisma generate
```

### 在工程中设置您的源代码

最后一步是在项目中添加你的代码,并转出你的应用程序. 您可以使用以下代码 .

##### 标准/指数.ts

```typescript
import { App } from '@slack/bolt';
import { ConsoleLogger, LogLevel } from '@slack/logger';
import { PrismaClient } from '@prisma/client';
import { PrismaInstallationStore } from '@seratch_/bolt-prisma';

const logger = new ConsoleLogger();
logger.setLevel(LogLevel.DEBUG);

const prismaClient = new PrismaClient({log: [{emit: 'stdout', level: 'query'}]});
const installationStore = new PrismaInstallationStore({
  // The name `slackAppInstallation` can be different
  // if you use a different name in your Prisma schema
  prismaTable: prismaClient.slackAppInstallation,
  clientId: process.env.SLACK_CLIENT_ID,
  logger,
});

const app = new App({
  socketMode: true,
  appToken: process.env.SLACK_APP_TOKEN,
  signingSecret: process.env.SLACK_SIGNING_SECRET,
  clientId: process.env.SLACK_CLIENT_ID,
  clientSecret: process.env.SLACK_CLIENT_SECRET,
  stateSecret: process.env.SLACK_STATE_SECRET,
  scopes: ['commands', 'chat:write', 'app_mentions:read'],
  installerOptions: {
    directInstall: true,
  },
  installationStore,
  logger,
});

app.event('app_mention', async ({ event, say }) => {
  await say({
    text: `<@${event.user}> Hi there :wave:`,
    blocks: [
      {
        type: 'section',
        text: {
          type: 'mrkdwn',
          text: `<@${event.user}> Hi there :wave:`,
        },
      },
    ],
  });
});

(async () => {
  await app.start();
  logger.info('⚡️ Bolt app is running!');
})();
```

最后,你的应用程序现在可以运行了! 设定所有所需的嵌入变量, 击出 `npm start`,然后启用您的公共 URL 端点( 您可能想要使用一些代理工具, 如 [无](https://ngrok.com/)) (中文(简体) ).

```bash
export SLACK_CLIENT_ID=
export SLACK_CLIENT_SECRET=
export SLACK_SIGNING_SECRET=
export SLACK_STATE_SECRET=secret
export SLACK_APP_TOKEN=
npm start
# Visit https://{your public domain}/slack/install
```

现在您可以将应用程序安装到您的 Lack 工作空间 `https://{your public domain}/slack/install`玩得开心点!

## 常见问题

### @dealops/bolt-prisma 是什么？

JavaScript 安装仓库扩展名 - Prisma

### 如何安装 @dealops/bolt-prisma？

在项目目录运行 npm install @dealops/bolt-prisma，或使用 pnpm add / yarn add / bun add。

### @dealops/bolt-prisma 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @dealops/bolt-prisma 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @dealops/bolt-prisma 可以商用吗？

@dealops/bolt-prisma 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @dealops/bolt-prisma 的下载量有多少？

根据 npm 官方下载统计，@dealops/bolt-prisma 在 2026/10/12 – 2026/11/10 这 30 天内被下载 2,163 次，日均约 72 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @dealops/bolt-prisma 还在维护吗？

最新版本 1\.0\.10 发布于 2025/09/17（1\.2 年前）；至今共发布 3 个版本，其中过去 12 个月发布了 0 个；首次发布于 2025/08/23。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

