このプロジェクトについて

# esm.sh モダンなウェブ開発のためのビルド不要のJavaScript CDN。 ## 概要 esm.shを使用すると、インストールやビルド手順なしで、HTTP URLから直接JavaScriptモジュールをインポートできます。ソースコードをサーバー側でブラウザ互換のESモジュールに変換し、結果をキャッシュして、グローバルなCloudflare CDNから配信します。 ## レジストリサポート - **NPM**: 名前、バージョン、タグで任意のパッケージをインポート - **JSR**: `/jsr/` で始まるDeno対応レジストリ - **GitHub**: `/gh/` プレフィックスでリポジトリから直接インポート - **pkg.pr.new**: `/pr/` プレフィックスでPRからのプレビュービルド ## 主な機能 ### ゼロビルドインポート ```js import React from "https://esm.sh/react@19.2.4"; import { encodeBase64 } from "https://esm.sh/jsr/@std/encoding@1.0.0/base64"; ``` ### ソース変換 ビルドツールなしで、ブラウザ内で `.ts(x)`、`.vue`、`.svelte` ファイルを自動的に変換します。 ### 依存関係管理 クエリパラメータで依存関係のバージョンを指定: ```js import useSWR from "https://esm.sh/swr?deps=react@18.3.1"; ``` 依存関係のエイリアス: ```js import useSWR from "https://esm.sh/swr?alias=react:preact/compat"; ``` ### バンドルオプション - `?bundle=false` - デフォルトのバンドルを無効化 - `?standalone` - すべての依存関係を単一ファイルにバンドル - `?raw` - 変換されていないソースコードを配信 - `?exports=foo,bar` - 特定のエクスポートにツリーシェイク ### ビルド設定 ビルドターゲットとオプションを制御: ```js // 開発ビルド import React from "https://esm.sh/react?dev"; // ターゲット指定 import React from "https://esm.sh/react?target=es2022"; // ESBuildオプション import foo from "https://esm.sh/foo?conditions=custom1,custom2"; import foo from "https://esm.sh/foo?keep-names"; ``` ### インポートマップ統合 HTMLインポートマップと連携してベア指定子を解決: ```html <script type="importmap"> { "imports": { "react": "https://esm.sh/react@19.2.4" } } </script> ``` `?external` または `*` プレフィックスを使用して、インポートをベア指定子のままにしてブラウザで解決させます。 ### 追加機能 - **CSSインポート**: JS内でCSSをインポートするパッケージ用の `?css` フラグ - **Web Workers**: インジェクションサポート付きワーカー読み込み用の `?worker` クエリ - **Deno互換性**: Node.js組み込みモジュール(fs、os、netなど)を解決 - **TypeScriptサポート**: `X-TypeScript-Types` ヘッダーによる自動型定義 - **tsxスクリプト**: HTML内でTSXを直接記述するための1KBスクリプト ### キャッシュパージ 更新されたパッケージのキャッシュビルドを更新: - 正確なバージョンは即座に再ビルド - ベア名は次のリクエストでバージョンを再解決 - プルーフ・オブ・ワークチャレンジで悪用を防止 ### セルフホスティング [ホスティングドキュメント](./HOSTING.md) に従って独自インスタンスをデプロイ。 ## 制限事項 現在、Node.jsまたはBunランタイムではサポートされていません。 ## ライセンス MIT