"module"package.json 필드는 무엇입니까?


111

일부 npm 패키지 ( : vue )에는 pkg.modulepackage.json에 필드가 있습니다. "module"공식 npm 속성 입니까 , 아니면 일종의 규칙입니까? 어딘가에 이것에 대한 문서가 있습니까? 그것은 무엇입니까? esnext 경로? 번들로 제공되지 않는 모듈 경로?


2
: - ECMAScript를 모듈에 대한 규칙은 여기 ESM의 식별에 서로 다른 접근 방식에 읽기 좋은 hackernoon.com/...
hackerrdave

답변:


118

"module"공식 npm 속성 입니까 , 아니면 일종의 규칙입니까?

그것은 A의 제안 ,하지만 가능성 때문에 사실상의 사용에 지원 될 수 있습니다.

어딘가에 이것에 대한 문서가 있습니까?

실제로 여기 에서 찾을 수 있으며 나중에 여기에서 제거 할 수 있습니다 .

그것은 무엇입니까?

Node.js의 ES6 모듈 상호 운용성 추가 논의는 여기여기 에서 찾을 수 있습니다 . 그리고 여기 에 그것에 대해 더 이야기하는 Rich Harris 의 블로그 포스트 가 있습니다.


1
WebPack에 이것에 대한 문서가 어딘가에 있습니까, 아니면 그냥 롤업입니까?
tech4him dec.

1
여기에 추가 한 것 같습니다 : webpack.js.org/guides/author-libraries/#final-steps
tech4him

43

ESM (ECMAScript Module) 감지를위한 번 들러 도구에서 사용됩니다. 롤업 문서는 꽤 잘 말한다 :

귀하의 경우 package.json파일도이 module필드를 같은 ES6 인식 도구 롤업웹팩 2는 것이다 ES6 모듈 버전을 가져 직접.

Rollup 1.0에 대한이 기사 는 다른 방식으로 설명합니다.

main필드는 사용하는 노드 사용자에게 requireUMD 버전이 제공 되는지 확인합니다 . 이 module필드는 공식 npm 기능이 아니지만 라이브러리의 ESM 버전을 가져 오는 방법을 지정하는 번 들러 간의 공통 규칙입니다.

의 추가 논의는 pkg.module온입니다 롤업 Github에서 위키웹팩 문서 .


1
해야 main라이브러리의 UMD 버전의 축소 된 버전을 할 수? 아니면 축소되지 않은 것이어야합니까? 어때 module? 사용자가 번 들러 (Webpack, Parcel 등)를 사용하고 ES6 모듈 내보내기와 함께 소스 파일을 사용하여 번 들러가 트리 흔들림을 풀 수 있기 때문에 모듈을 축소해서는 안된다고 생각합니다. 맞습니까?
tonix 1911
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.