몸짓 광대극
포괄적이고 컴팩트한 MIME 유형 모듈입니다.
버전 2 참고 사항
버전 2는 semver에서 알 수 있듯이 1.x의 주요 변경 사항입니다. 구체적으로 다음과 같습니다.
lookup()
다음으로 이름이 변경됨getType()
extension()
다음으로 이름이 변경됨getExtension()
charset()
및load()
메소드가 제거되었습니다.
이 모듈의 레거시 버전을 선호하는 경우 버전 1 문서는 여기에서npm install mime@^1
찾을 수 있습니다 .
설치하다
NPM
1npm install mime
Browser
코드를 패키징하려면 webpack 이나 browserify와 같은 번들러를 사용하는 것이 좋습니다 . 그러나 브라우저 지원 버전은 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
4const mime = require('mime');
mime.getType('txt'); // ⇨ 'text/plain'
mime.getExtension('text/plain'); // ⇨ 'txt'
API 세부정보는 아래 Mime API를 참조하세요 .
라이트 버전
*/vnd.*
공급업체별( ) 및 실험적( ) 유형을 생략한 이 모듈의 "라이트" 버전도 있습니다 */x-*
. 전체 버전의 8KB에 비해 무게는 ~2.5KB입니다. 라이트 버전을 로드하려면 다음을 수행하세요.
1const mime = require('mime/lite');
Mime .vs. mime-types .vs. mime-db 모듈
이러한 [인기] NPM 모듈 간의 차이점이 궁금하신 분들을 위해 여기에 간략한 요약이 있습니다.
mime-db
MIME 유형 정보에 대한 "진실의 소스"입니다. 이는 API가 아닙니다. 오히려 IANA, Apache, NGINX 및 Node.js 커뮤니티에서 제출한 사용자 정의 매핑에서 가져온 MIME 유형 정의의 정식 데이터 세트입니다.
mime-types
API 와 호환되는 API 드롭인을 제공하는 mime-db 주변의 얇은 래퍼입니다 mime @ < v1.3.6
.
mime
v2부터 사전 최적화된 버전의 데이터세트와 함께 번들로 제공되는 독립형 모듈로 mime-db
, 다음과 같은 특징을 지닌 단순화된 API를 제공합니다.
- 지능적으로 해결된 유형 충돌( 자세한 내용은 mime-score 참조 )
- 업계 모범 사례에 따른 메소드 명명
- 컴팩트한 설치 공간 예: 다양한 모듈의 축소+압축 크기:
기준 치수 | 크기 |
---|---|
mime-db |
18KB |
mime-types |
mime-db와 동일 |
mime |
8KB |
mime/lite |
2KB |
마임 API
아래에 설명된 MIME 클래스의 인스턴스 require('mime')
와 반환 인스턴스를 모두 반환합니다.require('mime/lite')
new Mime(typeMap, ... more maps)
이 모듈의 대부분의 사용자는 Mime 인스턴스를 직접 생성할 필요가 없습니다. 그러나 사용자 정의 매핑을 생성하려면 다음과 같이 수행할 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13// 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
8mime.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
확장자가 감지되거나 인식되지 않는 경우 반환됩니다.
1
2mime.getType('foo/txt'); // ⇨ null
mime.getType('bogus_type'); // ⇨ null
mime.getExtension(type)
지정된 MIME 유형에 대한 확장자를 가져옵니다. 문자 집합 옵션(종종 Content-Type 헤더에 포함됨)은 무시됩니다.
1
2
3mime.getExtension('text/plain'); // ⇨ 'txt'
mime.getExtension('application/json'); // ⇨ 'json'
mime.getExtension('text/html; charset=utf8'); // ⇨ 'html'
mime.define(typeMap[, force = false])
[추가] 유형 매핑을 정의합니다.
typeMap
위 의 문서에 설명된 대로 유형 -> 확장의 맵입니다 new Mime
.
기본적으로 이 메소드는 이미 다른 유형에 할당된 확장에 유형을 매핑하려고 하면 오류를 발생시킵니다. 인수를 전달하면 true
이
force
동작이 억제됩니다(이전 매핑을 재정의함).
1
2
3
4mime.define({'text/x-abc': ['abc', 'abcd']});
mime.getType('abcd'); // ⇨ 'text/x-abc'
mime.getExtension('text/x-abc') // ⇨ 'abc'
명령줄
1mime [path_or_extension]
이자형
1
2> mime scripts/jquery.js
application/javascript
다음에서 생성된 마크다운src/README_js.md~에 의해