npm パッケージの使用
アプリで任意の npm パッケージをインストールして使用できます。 ロジック関数とフロントコンポーネントはどちらも esbuild でバンドルされ、依存関係はすべて出力にインライン化されます—実行時にnode_modules は不要です。
パッケージのインストール
src/logic-functions/fetch-data.ts
src/front-components/chart.tsx
バンドルの仕組み
ビルドステップでは esbuild を使用して、各ロジック関数および各フロントコンポーネントごとに自己完結した単一ファイルを生成します。 インポートされたパッケージはすべてバンドルにインライン化されます。 ロジック関数は Node.js 環境で実行されます。 Node の組み込みモジュール(fs、path、crypto、http など) は利用可能で、インストールは不要です。
フロントコンポーネントは Web Worker で実行されます。 Node の組み込みモジュールは利用できません—ブラウザー環境で動作するブラウザー API と npm パッケージのみが使用できます。
どちらの環境でも、twenty-client-sdk/core および twenty-client-sdk/metadata が事前提供モジュールとして利用可能です—これらはバンドルされず、実行時にサーバーによって解決されます。
セットアップ
スキャフォルドされたアプリにはすでに Vitest が含まれています。 手動で設定する場合は、依存関係をインストールしてください:vitest.config.ts を作成します:
vitest.config.ts
~/.twenty/config.test.json)を書き込み、テストの実行前にアプリを同期するグローバルセットアップファイルを作成します。
src/__tests__/global-setup.ts
プログラム用 SDK API
twenty-sdk/cli サブパスは、テストコードから直接呼び出せる関数をエクスポートします:
各関数は、
success: boolean と data または error のいずれかを含む結果オブジェクトを返します。
統合テストの作成
アプリをビルド、デプロイ、インストールし、その後ワークスペースに表示されることを検証する完全な例を次に示します:src/__tests__/app-install.integration-test.ts
テストの実行
ローカルの Twenty サーバーが起動していることを確認し、次を実行します:型チェック
テストを実行せずに、アプリの型チェックのみを実行することもできます:tsconfig.json に対して tsc --noEmit を実行し、型エラーを報告します。 スキャフォルドされたアプリには、テストファイル(tsconfig.spec.json)も対象とする yarn typecheck スクリプトも同梱されています。
GitHub Actions による CI
スキャフォルダーは、すぐに使えるワークフローを.github/workflows/ci.yml に生成します。 main へのすべてのプッシュおよびすべてのプルリクエスト時に、ランナー内で一時的な Twenty サーバーを起動(twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test アクション経由)し、そのサーバーを指すように TWENTY_API_URL / TWENTY_API_KEY を設定した上で、yarn lint、yarn typecheck、yarn test:unit、yarn test を実行します。 シークレットは一切不要で、ワークフローの先頭にある TWENTY_VERSION 環境変数を通じてサーバーバージョンを固定できます。
スキャフォルドされた 3 つのワークフロー(ci.yml、cd.yml デプロイパイプライン、npm パブリッシング用の publish.yml)の詳細な手順については、Publishing → Automated CI/CD を参照してください。