このプロジェクトについて
# 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
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.