2016-11-12 1 views
1

여기 resolve.extensions 대한 official documentWebpack에서 resolve.extensions는 어떤 역할을합니까?

resolve.extensions

모듈을 확인하는 데 사용되어야 정보의 배열이다. 예를 들어 CoffeeScript 파일을 찾으려면 배열에 ".coffee"문자열이 있어야합니다.

기본값 : [ "", ".webpack.js", ".web.js", "은 .js"]

중요 :이 옵션을 설정하면 웹팩가 더 이상하려고하지 않을 것임을 의미 기본값을 재정의합니다 기본 확장명을 사용하여 모듈을 해결합니다. 확장명이 필요한 모듈 (예 : require ('./ somefile.ext'))을 올바르게 확인하려면 배열에 빈 문자열을 포함해야합니다. 마찬가지로 확장자가 필요없는 모듈 (예 : require ('밑줄'))을 확장자가 .js 인 파일로 확인하려면 배열에 '.js'를 포함해야합니다.

전적으로 이것으로 혼란 스럽습니다.

"확장명이 필요한 모듈을 원한다면 (예 : (./ somefile.ext ') 필요) 적절히 해결하려면 배열에 빈 문자열을 포함시켜야합니다."

왜?

"확장명이없는 필수 모듈 (예 : '밑줄')을 확장명이 .js 인 파일로 변환하려면 배열에".js "를 포함해야합니다.

왜? 배열에 ".js"및 ".css"를 포함하면 어떻게 될까요?

resolve.extension의 동작에 대해 명확하지 않습니다. 예를 들어 설명해주십시오.

답변

2

웹팩은 resolve.extensions을 사용하여 모듈에 가능한 모든 경로를 생성합니다.

function getPaths(module) { 
    return ['', '.js', '.css'].map(ext => module + ext); 
} 

getPaths('./somefile'); // ['./somefile', './somefile.js', './somefile.css'] 

getPaths('./somefile.js'); // ['./somefile.js', './somefile.js.js', './somefile.js.css'] 

웹팩은 다음 파일을 찾을 때까지 그 경로의 각을 조회로 진행한다.

관련 문제