メインコンテンツに移動

プロジェクトのセットアップ

プロジェクトのセットアップ

このガイドでは、AppKit アプリケーションで推奨されるプロジェクト構造とスキャフォールディングについて説明します。

標準的なプロジェクトレイアウト

推奨される構成 (クライアント/サーバー分割) :

my-app/ ├── server/ │ ├── server.ts # バックエンドのエントリポイント (AppKit) │ └── .env # ローカル開発用の環境変数 (任意、コミットしないこと) ├── client/ │ ├── index.html │ ├── vite.config.ts │ └── src/ │ ├── main.tsx │ └── App.tsx ├── config/ │ └── queries/ │ └── my_query.sql ├── app.yaml ├── package.json └── tsconfig.json

layout の設計意図

AppKit の server() plugin は、次を自動的に配信します。

  • 開発時: client/ の Vite 開発サーバー(HMR)
  • 本番時: client/dist の静的ファイル(Vite でビルド)

プロジェクトのスキャフォールディング

package.json

{
  "name": "my-app",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "NODE_ENV=development tsx watch server/server.ts",
    "build": "npm run build:server && npm run build:client",
    "build:server": "tsdown --out-dir build server/server.ts",
    "build:client": "tsc -b && vite build --config client/vite.config.ts",
    "start": "node build/index.mjs"
  },
  "dependencies": {
    "@databricks/appkit": "^0.1.2",
    "@databricks/appkit-ui": "^0.1.2",
    "react": "^19.2.3",
    "react-dom": "^19.2.3"
  },
  "devDependencies": {
    "@types/node": "^20.0.0",
    "@types/react": "^19.0.0",
    "@types/react-dom": "^19.0.0",
    "@vitejs/plugin-react": "^5.1.1",
    "tsdown": "^0.20.3",
    "tsx": "^4.19.0",
    "typescript": "~5.6.0",
    "vite": "^7.2.4"
  }
}

client/index.html

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>My App</title>
  </head>
  <body>
    <div id="root"></div>
    <script type="module" src="/src/main.tsx"></script>
  </body>
</html>

client/src/main.tsx

import { StrictMode } from "react";
import { createRoot } from "react-dom/client";
import App from "./App";

createRoot(document.getElementById("root")!).render(
  <StrictMode>
    <App />
  </StrictMode>,
);

client/src/App.tsx (最小構成)

export default function App() {
  return (
    <div className="p-8">
      <h1 className="text-2xl font-bold">My App</h1>
    </div>
  );
}

client/vite.config.ts

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";

export default defineConfig({
  plugins: [react()],
});

tsconfig.json

{
  "compilerOptions": {
    "target": "ES2022",
    "lib": ["ES2022", "DOM", "DOM.Iterable"],
    "module": "ESNext",
    "moduleResolution": "bundler",
    "jsx": "react-jsx",
    "strict": true,
    "skipLibCheck": true,
    "noEmit": true,
    "allowImportingTsExtensions": true,
    "verbatimModuleSyntax": true
  },
  "include": ["server", "client/src"]
}

server/server.ts

import { createApp, server } from "@databricks/appkit";

await createApp({
  plugins: [server()],
});

アプリの実行

# 依存関係をインストール
npm install

# 開発(バックエンドと Vite 開発サーバーを起動)
npm run dev

# 本番ビルド
npm run build
npm start

既存アプリへの統合

すでに React/Vite アプリがあり、そこに AppKit を追加する場合は、次の手順に従います。

1. 依存関係をインストールする

npm install @databricks/appkit @databricks/appkit-ui react react-dom
npm install -D tsx tsdown vite @vitejs/plugin-react typescript

まだ client/ フォルダーがない場合は作成し、Vite アプリをその中に移動します。

  • index.htmlclient/index.html に移動
  • vite.config.tsclient/vite.config.ts に移動
  • src/client/src/ に移動

2. server/server.ts を作成する (新規ファイル)

import { createApp, server } from "@databricks/appkit";

await createApp({
  plugins: [server()],
});

3. package.json のスクリプトを更新する

{
  "scripts": {
    "dev": "NODE_ENV=development tsx watch server/server.ts",
    "build": "npm run build:server && npm run build:client",
    "build:server": "tsdown --out-dir build server/server.ts",
    "build:client": "tsc -b && vite build --config client/vite.config.ts",
    "start": "node build/index.mjs"
  }
}

4. セットアップを完了する

AppKit のサーバー plugin は、開発モードでは Vite アプリを、本番環境では client/dist を自動的に配信します。Vite アプリをリポジトリのルートに置いたままにする必要がある場合 (client/ フォルダーがない場合) でも AppKit は動作しますが、推奨されるレイアウトは client/ + server/ です。

既存アプリへの分析機能の追加

SQL query の実行機能を追加するには、次の手順を実行します。

// server/server.ts
import { createApp, server, analytics } from "@databricks/appkit";

await createApp({
  plugins: [server(), analytics()],
});

次に config/queries/ を作成し、.sql ファイルを追加します。

関連項目

Databricks Developer Hub

次のエージェント型アプリを数分でリリースする準備はできていますか?

ドキュメントを読む