Open1

shadcn/uiの8月にあったCLI変更が良さそうなので、調査&まとめてみる

Fujiya228Fujiya228

https://ui.shadcn.com/docs/changelog

のログ見た

新しいCLIが利用可能になりました。完全なリライトで、多くの新機能と改善が加わっています。これにより、npx shadcn addを使用してコンポーネント、テーマ、フック、ユーティルなどをインストールできるようになりました。

これは、あなたやLLMsがアクセスして使用できるコードを配布するための大きなステップです。

  1. まず、CLIは主要なReactフレームワーク(Next.js、Remix、Vite、Laravel)を標準でサポートするようになりました。新しいアプリに初期化する際、既存のTailwindファイルを上書きするのではなく、更新します。
  2. コンポーネントには、それぞれの依存関係が含まれるようになりました。たとえば、アコーディオンコンポーネントは独自のTailwindキーフレームを定義できます。プロジェクトに追加すると、tailwind.config.tsファイルが自動的に更新されます。
  3. また、URLを使用してリモートコンポーネントをインストールすることも可能になりました。npx shadcn add https://acme.com/registry/navbar.jsonのように利用できます。
  4. initコマンドも改良され、フレームワークの検出を行い、npx shadcn initの1つのコマンドで新しいNext.jsアプリを初期化することができます。
  5. 独自のコンポーネントレジストリを配布するための新しいスキーマが作成されました。URLのサポートもあるため、プライベートコンポーネントを配布することも可能です。
  6. さらに、エラーハンドリングの改善やモノレポのサポートなど、いくつかのアップデートも行われています。

個人的に気になったのは、3. 4. 5.

3.と5. リモートコンポーネントやプライベートコンポーネント

https://ui.shadcn.com/r/styles/new-york/sidebar-01.json

みたいな定義を用意しておけばそれを元にインストールができるっぽい
定義内容は大枠以下

  • 依存するregistry(コンポーネント)の指定
  • ファイル(パス、内容、type、ターゲット)

リポジトリのコマンド探ってたら、registryをビルドするコマンドがあるっぽかったので、手元で作って公開とかできるのかも

追加調査

  • registryのインストールやってみる
  • registryの構築やってみる

4. フレームワーク検出つきinitコマンド

利用しているフレームワークに合わせて初期化をしてくれるのでは??
Next.jsについては書いてあったけど、他はどうなんだろう

追加調査

  • 色々なフレームワークと初期化の仕方を試す
  • t3-stackとかとも使いたい

CLIのnpmはこちら
https://www.npmjs.com/package/shadcn