Módulo de comunidad impresionante

Mímica

Un módulo de tipo MIME completo y compacto.

Estado de la construcción

Notas de la versión 2

La versión 2 es un cambio radical de 1.x, como implica semver. Específicamente:

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

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

Instalar en pc

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 listas 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 mime/liteversión:

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 1000 extensiones):

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

Consulte la API de Mime a continuación para conocer los detalles de la API.

Version lite

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

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

Mime .vs. Mime-types .vs. Mime-db módulos

Para aquellos de ustedes que se preguntan acerca de la diferencia entre estos módulos [populares] de NPM, 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-typeses una envoltura delgada alrededor de mime-db que proporciona una API compatible (ish) con mime @ < v1.3.6API.

mimees, a partir de la v2, un módulo autónomo que se incluye con una versión optimizada previamente del mime-dbconjunto de datos. Proporciona una API simplificada con las siguientes características:

  • Conflictos de tipo resueltos de forma inteligente (consulte mime-score para más detalles)
  • Denominación de métodos coherente con las mejores prácticas de la industria
  • Huella compacta. Por ejemplo, los tamaños minificados + comprimidos de los distintos módulos:
Módulo Tamaño
mime-db 18 KB
mime-types igual que mime-db
mime 8 KB
mime/lite 2 KB

API de Mime

Ambas instancias de retorno require('mime')y require('mime/lite')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()edita (ver más abajo), en orden.

mime.getType(pathOrExtension)

Obtenga el tipo de 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'

null se devuelve 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)

Obtener extensión para el tipo de 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])

Defina [más] asignaciones de tipos.

typeMapes un mapa de tipo -> extensiones, como se documenta new Mimearriba.

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 trueel forceargumento 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]

P.ej

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

Markdown generado a partir de src/README_js.md por Logotipo de RunMD