素晴らしいコミュニティモジュール

マイム

包括的でコンパクトなMIMEタイプモジュール。

ビルドステータス

バージョン2のメモ

バージョン2は、semverが示唆するように1.xからの重大な変更です。

  • lookup()getType() lookup()名前が変更されました
  • extension()名前をgetExtension()
  • charset()およびload()メソッドが削除されました

このモジュールのレガシーバージョンを希望する場合は、 npm install mime@^1をおnpm install mime@^1くださいnpm install mime@^1バージョン1のドキュメントはこちらにあります

インストールする

NPM

1
npm install mime

Browser

webpackbrowserifyなどのバンドラーを使用してコードをパッケージ化することをお勧めしますが、ブラウザー対応バージョンはwzrd.inから入手できます。

1 2 3 4
<script src="https://wzrd.in/standalone/mime@latest"></script> <script> mime.getType(...); // etc. <script>

または、 mime/liteバージョンの場合:

1 2 3 4
<script src="https://wzrd.in/standalone/mime%2flite@latest"></script> <script> mimelite.getType(...); // (Note `mimelite` here) <script>

クイックスタート

フルバージョン(800+ MIMEタイプ、1,000 +拡張)の場合:

1 2 3 4 5
const mime = require('mime'); mime.getType('txt'); // ⇨ 'text/plain' mime.getExtension('text/plain'); // ⇨ 'txt'

APIの詳細については、以下のMime APIを参照してください。

Liteバージョン

ベンダー固有( */vnd.* )および実験的( */x-* )タイプを省略するこのモジュールの「ライト」バージョンもあります。フルバージョンの8 KBと比較して、約2.5 KBの重さです。ライト版をロードするには:

1
const mime = require('mime/lite');

Mime .vs。Mime-types .vs。Mime-dbモジュール

これらの[一般的な] NPMモジュールの違いについて疑問に思う方のために、簡単な要約をご紹介します...

mime-dbは、MIMEタイプ情報の「真実のソース」であり、APIではなく、IANA、Apache、NGINX、およびNode.jsコミュニティから送信されたカスタムマッピングからプルされたmimeタイプ定義の標準データセットです。 。

mime-typesはmime-dbの薄いラッパーで、 mime @ < v1.3.6 APIとAPIドロップイン互換(ish)をmime @ < v1.3.6ます。

mimeは、v2の時点で、事前に最適化されたバージョンのmime-dbデータセットにバンドルされている自己完結型のモジュールであり、次の特性を持つ簡易APIを提供します。

  • インテリジェントに解決された型の競合(詳細についてはmime-scoreを参照)
  • 業界のベストプラクティスと一致するメソッドの命名
  • Compact footprint. Eg The minified+compressed sizes of the various modules
モジュール大きさ
mime-db 18 KB
mime-types mime-dbと同じ
mime 8 KB
mime/lite 2 KB

MIME API

require('mime')およびrequire('mime/lite')は、MIMEクラスのインスタンスを返します。これについては以下で説明します。

new Mime(typeMap, ... more maps)

このモジュールのほとんどのユーザーは、MIMEインスタンスを直接作成する必要はありませんが、カスタムマッピングを作成する場合は、次のように作成できます。

1 2 3 4 5 6 7 8 9 10 11 12 13 14
// Require Mime class const Mime = require('mime/Mime'); // Define mime type -> extensions map const typeMap = { 'text/abc': ['abc', 'alpha', 'bet'], 'text/def': ['leppard'] }; // Create and use Mime instance const myMime = new Mime(typeMap); myMime.getType('abc'); // ⇨ 'text/abc' myMime.getExtension('text/def'); // ⇨ 'leppard'

複数のマップ引数が指定されている場合、各マップは順番にdefine()以下を参照)。

mime.getType(pathOrExtension)

指定されたパスまたは拡張子のMIMEタイプを取得します。

1 2 3 4 5 6 7 8 9
mime.getType('js'); // ⇨ 'application/javascript' mime.getType('json'); // ⇨ 'application/json' mime.getType('txt'); // ⇨ 'text/plain' mime.getType('dir/text.txt'); // ⇨ 'text/plain' mime.getType('dir\\text.txt'); // ⇨ 'text/plain' mime.getType('.text.txt'); // ⇨ 'text/plain' mime.getType('.txt'); // ⇨ 'text/plain'

拡張機能が検出または認識されない場合はnullが返されnull

1 2 3
mime.getType('foo/txt'); // ⇨ null mime.getType('bogus_type'); // ⇨ null

mime.getExtension(type)

指定されたMIMEタイプの拡張子を取得します(多くの場合、Content-Typeヘッダーに含まれる)文字セットオプションは無視されます。

1 2 3 4
mime.getExtension('text/plain'); // ⇨ 'txt' mime.getExtension('application/json'); // ⇨ 'json' mime.getExtension('text/html; charset=utf8'); // ⇨ 'html'

mime.define(typeMap[, force = false])

[詳細]型マッピングを定義します。

typeMapは、上記のnew Mimeで文書化されているように、 typeMap > extensionのマップです。

ウィルスローデフォルトこの方法により、ANエラーによってあなたIFタイプのIS AN拡張が既に別に割り当てられていることにタイプAのマップしよう。渡すtrueでのためにforceウィルによって引数抑制値を、この動作(任意の以前のマッピングをオーバーライド)。

1 2 3 4 5
mime.define({'text/x-abc': ['abc', 'abcd']}); mime.getType('abcd'); // ⇨ 'text/x-abc' mime.getExtension('text/x-abc') // ⇨ 'abc'

コマンドライン

1
mime [path_or_extension]

例えば

1 2
> mime scripts/jquery.js application/javascript

src/README_js.mdから生成されたsrc/README_js.mdダウンRunMDロゴ