Fantastico modulo community community

Mimo

Un modulo di tipo MIME completo e compatto.

Stato di costruzione

Note sulla versione 2

La versione 2 è una modifica sostanziale rispetto alla 1.x come implica il semver.

  • lookup() rinominato in getType()
  • extension() rinominato in getExtension()
  • charset()e i load()metodi sono stati rimossi

Se preferisci la versione legacy di questo modulo, per favore, i npm install mime@^1documenti della versione 1 possono essere trovati qui .

Installare

NPM

1
npm install mime

Browser

Si consiglia di utilizzare un bundler come webpack o browserify per impacchettare il codice.Tuttavia , le versioni pronte per il browser sono disponibili tramite wzrd.in.Ad esempio, per la versione completa:

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

Oppure, per la mime/liteversione:

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

Avvio veloce

Per la versione completa (800+ tipi MIME, 1.000+ estensioni):

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

Vedi API Mime di seguito per i dettagli dell'API.

Versione semplificata

Esiste anche una versione "lite" di questo modulo che omette i tipi specifici del fornitore ( */vnd.*) e sperimentali ( */x-*). Ha un peso di ~ 2,5 KB, rispetto agli 8 KB della versione completa. Per caricare la versione lite:

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

Mime .vs. tipi mime .vs. moduli mime-db

Per quelli di voi che si chiedono la differenza tra questi moduli NPM [popolari], ecco un breve riassunto ...

mime-db è "la fonte della verità" per le informazioni sul tipo MIME. Non è un'API. Piuttosto, è un set di dati canonico di definizioni di tipo MIME estratte da IANA, Apache, NGINX e mappature personalizzate inviate dalla comunità Node.js.

mime-typesè un sottile involucro intorno a mime-db che fornisce un drop-in API compatibile (ish) con mime @ < v1.3.6API.

mimeè, a partire dalla v2, un modulo autonomo in bundle con una versione pre-ottimizzata del mime-dbset di dati.Fornisce un'API semplificata con le seguenti caratteristiche:

  • Conflitti di tipo risolti in modo intelligente (vedi mime-score per i dettagli)
  • Denominazione del metodo coerente con le migliori pratiche del settore
  • Ingombro compatto Es. Le dimensioni minimizzate+compresse dei vari moduli:
Modulo Dimensione
mime-db 18 KB
mime-types come mime-db
mime 8 KB
mime/lite 2 KB

API Mime

Entrambi require('mime')e require('mime/lite')restituiscono istanze della classe MIME, documentate di seguito.

new Mime(typeMap, ... more maps)

La maggior parte degli utenti di questo modulo non avrà bisogno di creare istanze Mime direttamente.Tuttavia, se desideri creare mappature personalizzate, puoi farlo come segue...

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'

Se viene fornito più di un argomento della mappa, ogni mappa viene modificata define()(vedi sotto), in ordine.

mime.getType(pathOrExtension)

Ottieni il tipo MIME per il percorso o l'estensione specificati

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 viene restituito nei casi in cui un'estensione non viene rilevata o riconosciuta

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

mime.getExtension(type)

Ottieni l'estensione per il tipo MIME specificato. Le opzioni del set di caratteri (spesso incluse nelle intestazioni Content-Type) vengono ignorate.

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])

Definisci [più] mappature dei tipi.

typeMapè una mappa di tipo -> estensioni, come documentato in new Mime, sopra.

Per impostazione predefinita, questo metodo genera un errore se si tenta di mappare un tipo a un interno che è già assegnato a un altro tipo. Passando trueper l' forceargomento sarà sopprimere questo comportamento (ignorando qualsiasi mappatura precedente).

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

Riga di comando

1
mime [path_or_extension]

Per esempio

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

Ribasso generato da src/README_js.md di RunMD Logo