rslib-best-practices について
Rslib を使うライブラリプロジェクトの作成とレビューを支援するスキルです。設定、ビルド、出力形式、宣言ファイル、依存関係、最適化、ツールチェーン連携を扱います。
主な機能
- 01Rslib と Rsbuild の設定指針
- 02ビルドと設定確認のコマンド
- 03出力形式と exports の助言
- 04宣言ファイル生成の指針
- 05依存関係と最適化の実践
活用シーン
- 01Rslib ライブラリのビルド設定
- 02パッケージ出力と exports のレビュー
- 03設定やプラグイン動作の調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ rstackjs/ agent-skills --skill rslib-best-practicesインストール後、Claude Code で/rslib-best-practicesを入力して読み込まれたか確認します。
詳細
Rslib のベストプラクティス
Rslib のライブラリプロジェクトを作成またはレビューする際は、以下のルールに従ってください。
設定
rslib.config.tsとdefineConfigを使用します- まず Rslib 固有の設定(例:
lib.*)を確認し、必要に応じて Rsbuild の設定(例:source.*、output.*、tools.*)も活用します - より詳細な設定や高度な設定が必要な場合は、
tools.rspackまたはtools.bundlerChainを使用して、Rspack のネイティブ設定にアクセスします - TypeScript プロジェクトでは、
tsconfig.jsonのパスエイリアスを優先します
CLI
- ビルドには
rslibを使用します - ローカル開発でウォッチモードでビルドするには、
rslib --watchを使用します - 最終的な Rslib/Rsbuild/Rspack 設定を確認するには、
rslib inspectを使用します
出力
package.jsonで"type": "module"を指定し、純粋な ESM パッケージをビルドすることを優先します- コンポーネントライブラリをビルドする場合は、
output.targetを'web'に設定したバンドルレスモードを優先します - Node.js ユーティリティライブラリをビルドする場合は、バンドルモードを優先します
package.jsonのexportsフィールドが正しく設定され、各フォーマット(ESM、CJS など)の実際の JavaScript 出力および宣言ファイルの出力と一致していることを確認します
宣言ファイル
lib.dts: trueまたは詳細な設定を使用して、宣言ファイルの生成を有効にすることを優先します- 型生成を高速化するには、
@typescript/native-previewをインストールしたうえで、実験的機能lib.dts.tsgoを有効にします
依存関係
- バンドルモードでは、バンドル対象の依存関係は
devDependenciesに配置することを優先します。dependenciesとpeerDependenciesの依存関係は、デフォルトで自動的に外部化(バンドルされない)されます - ビルド出力と
package.jsonの依存関係指定を慎重に確認し、利用者がこのパッケージをインストールして使用する際に、依存関係の不足によるエラーが発生しないようにします
ビルドの最適化
- より優れた最適化を可能にするため、
lib.syntaxの構文ターゲットを実際の互換性要件に合わせます - 異なる出力フォーマットとの互換性を高めるため、ソースコードでフォーマット固有の API を使用しないようにします
- バンドルサイズを削減するため、軽量な依存関係を優先します
ツールチェーンとの統合
- テストを作成する際は、
@rstest/adapter-rslibとともに Rstest を使用することを優先します - ライブラリのドキュメントを作成する際は Rspress を使用し、コンポーネントのプレビューと API ドキュメントには
@rspress/plugin-previewと@rspress/plugin-api-docgenを使用することを優先します
デバッグ
- 設定解決やプラグインの動作を調査する際は、
DEBUG=rsbuildを設定して実行します - 想定上の設定ではなく、最終的な Rsbuild/Rspack 設定を確認するため、生成された
dist/.rsbuild内のファイルを読みます
ドキュメント
- 最新の Rslib ドキュメントについては、https://rslib.rs/llms.txt を参照してください
コメント
Markdown 対応