Impresionante módulo de comunidad

Mimo

Un módulo de tipo MIME compacto y completo.

Estado de compilación

Notas de la versión 2

La versión 2 es un cambio importante desde 1.x como lo implica la semver.

  • lookup() renombrado a getType()
  • extension() renombrado a getExtension()
  • Se han eliminado los métodos charset() y load()

Si prefiere la versión heredada de este módulo, npm install mime@^1 Aquí puede encontrar los documentos de la versión 1.

Instalar

NPM

1
npm install mime

Browser

Se recomienda que utilice un paquete como webpack o browserify para empaquetar su código. Sin embargo, las versiones preparadas para el navegador están disponibles a través de wzrd.in. Por ejemplo, para la versión completa:

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

O, para la versión mime/lite :

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

Inicio rápido

Para la versión completa (más de 800 tipos MIME, más de 1,000 extensiones):

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

Vea la API de Mime a continuación para obtener detalles de la API.

Versión Lite

También hay una versión "lite" de este módulo que omite los tipos específicos del proveedor ( */vnd.* ) Y experimentales ( */x-* ). Pesa ~ 2.5 KB, en comparación con 8 KB para la versión completa. Para cargar la versión lite:

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

Mime .vs. Mime-types .vs. Mime-db modules

Para aquellos de ustedes que se preguntan sobre la diferencia entre estos módulos NPM [populares], aquí hay un breve resumen ...

mime-db es "la fuente de la verdad" para la información de tipo MIME. No es una API. Más bien, es un conjunto de datos canónico de definiciones de tipo mime extraídas de IANA, Apache, NGINX y asignaciones personalizadas enviadas por la comunidad Node.js .

mime-types es un envoltorio delgado alrededor de mime-db que proporciona un API compatible con drop-in (ish) con mime @ < v1.3.6 API.

mime es, a partir de v2, un módulo autónomo incluido con una versión optimizada previamente del conjunto de datos mime-db . Proporciona una API simplificada con las siguientes características:

  • Conflictos de tipos resueltos de forma inteligente (ver mime-score para más detalles)
  • Nombre del método consistente con las mejores prácticas de la industria
  • Compact footprint. Eg The minified+compressed sizes of the various modules :
Modulo Tamaño
mime-db 18 KB
mime-types igual que mime-db
mime 8 KB
mime/lite 2 KB

API Mime

Ambos require('mime') y require('mime/lite') instancias de retorno de la clase MIME, documentadas a continuación.

new Mime(typeMap, ... more maps)

La mayoría de los usuarios de este módulo no necesitarán crear instancias de Mime directamente. Sin embargo, si desea crear asignaciones personalizadas, puede hacerlo de la siguiente manera ...

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'

Si se proporciona más de un argumento de mapa, cada mapa se define() ed (ver más abajo), en orden.

mime.getType(pathOrExtension)

Obtenga el tipo mime para la ruta o extensión dada.

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'

se devuelve null en los casos en que no se detecta o reconoce una extensión

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

mime.getExtension(type)

Obtenga la extensión para el tipo mime dado. Las opciones de juego de caracteres (a menudo incluidas en los encabezados de tipo de contenido) se ignoran.

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

Definir [más] asignaciones de tipos.

typeMap es un mapa de typeMap > extensiones, como se documenta en el new Mime , arriba.

De forma predeterminada, este método arrojará un error si intenta asignar un tipo a una extensión que ya está asignada a otro tipo. Pasar true para el argumento de la force suprimirá este comportamiento (anulando cualquier asignación anterior).

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

Línea de comando

1
mime [path_or_extension]

Por ej.

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

Markdown generado desde src/README_js.md por Logotipo de RunMD