패키지 이름이나 # 별칭 입력
sample-kit/feature는 name을 통해 ./feature로 정규화됩니다. #config를 넣으면 패키지 내부 imports 매핑을 사용합니다.
버전과 패키지
매니페스트와 진입점을 선택하면 첫 번째 일치 분기가 표시됩니다.
매니페스트는 브라우저 안에서 처리됩니다. npm 조회나 업로드는 없습니다.
package.json을 입력하세요.
공백이나 쉼표로 구분하세요. 브라우저와 번들러의 전체 동작은 재현하지 않습니다.
입력 또는 옵션이 바뀌었습니다. 다시 해석한 뒤 내보내세요.
import에서는 열리는데 require에서는 실패하는 패키지가 있습니다. package.json exports의 조건 순서와 패키지 진입점을 함께 보면 어느 파일을 골랐는지 알 수 있습니다.
이 이 도구 도구는 요청 하나를 따라가며 # 별칭은 imports에서 검사합니다. 파일 시스템을 읽지 않으므로 표시된 대상의 실제 존재는 별도 확인이 필요합니다.
조건부 내보내기는 선택한 조건의 순서가 아닌 JSON 키 순서대로 검사됩니다. default가 앞에 있어 import를 가리는 경우까지 분기에서 볼 수 있습니다.
package.json exports는 . 및 ./feature를 외부에 공개하지만 #config는 같은 패키지의 imports 별칭입니다. null은 파일 누락이 아니라 의도한 차단입니다.
sample-kit/feature는 name을 통해 ./feature로 정규화됩니다. #config를 넣으면 패키지 내부 imports 매핑을 사용합니다.
기본은 Node.js import입니다. require 또는 추가 조건으로 결과를 비교하세요. 자동 해석은 350ms 기다리고, 끄면 버튼이나 Ctrl/Cmd + Enter로 실행합니다.
일치한 키, 조건 순서, 대상 문자열을 비교하세요. 문법 검사는 실제 파일을 확인하지 않습니다. 입력이 바뀌면 오래된 보고서를 복사할 수 없습니다.
루트, 정확한 서브패스, * 패턴을 시험합니다. 정확한 키가 우선이며 더 구체적인 패턴이 넓은 패턴보다 먼저 적용됩니다. null은 일부를 막습니다.
Node.js의 import 및 require를 비교합니다. browser, types, development를 추가할 수 있지만 이는 조건 집합 미리보기입니다.
exports 대상에는 ./가 필요하고 상위 폴더나 node_modules를 통과할 수 없습니다. imports의 외부 패키지 대상은 별도로 허용합니다.
객체에 먼저 적힌 활성 조건이 우선합니다. node가 require 앞에 있으면 두 조건이 모두 활성일 때 node의 대상이 선택됩니다.
호출 방식을 바꾸면 Node의 활성 조건이 달라집니다. 매핑 키 순서는 그대로이므로 결과 분기를 나란히 비교할 수 있습니다.
exports가 생기면 공개된 서브패스만 외부에서 사용할 수 있습니다. 정확한 키나 * 패턴이 없으면 내보내지 않은 경로입니다.
./features/* 같은 키가 요청의 뒷부분을 잡아 대상의 *에 넣습니다. 정확한 키와 더 구체적인 패턴이 먼저입니다.
TypeScript 같은 타입 도구가 이 조건을 사용할 수 있습니다. 여기서는 명시적으로 추가해 선택 경로를 미리 볼 뿐 타입 파일은 검사하지 않습니다.
아니요. browser는 Node 기본 조건이 아닙니다. 조건을 추가해 분기를 볼 수 있지만 번들러의 전체 동작과 동일하지 않습니다.
다른 매핑 문제가 있나요?
같은 진입점에서 import와 require를 비교하고 package.json exports 분기 보고서를 검토해 보세요.