2015-01-21 5 views
1

bower_components 안에있는 구성 요소를 찾기 위해 webpack을 얻을 수있었습니다. bower 구성 요소가 만 포함하고 bower.json 파일은 포함하지 않을 때 문제가 발생합니다 (첫 번째 파일 이름 앞에는 .이 표시됨). 나는 정자 구성 요소로 jquery.selectBoxIt를 사용하기 위해 노력하고있어WebPack : bower.json 및 .bower.json을 모두 찾는 방법

var ResolverPlugin = require('webpack/lib/ResolverPlugin'); 

// webpack configuration 
module.exports = { 
    entry: { 
     app: 'app.js' 
    }, 
    output: { 
     filename: '[name].js' 
    }, 
    resolve: { 
     modulesDirectories: ['node_modules', 'web_modules', 'bower_components', 'static'] 
    }, 
    plugins: [ 
     new ResolverPlugin(
      new ResolverPlugin.DirectoryDescriptionFilePlugin('bower.json', ['main']) 
     ) 
    ] 
}; 

다음과 같이

webpack.config.js 파일의 단순화 된 버전 보인다. 또 다른 문제는 .bower.json 파일에 main 필드가 없다는 것입니다.

// .bower.json 

{ 
    "name": "jquery.selectBoxIt", 
    "homepage": "https://github.com/gfranko/jquery.selectBoxIt.js", 
    "version": "3.8.1", 
    "_release": "3.8.1", 
    "_resolution": { 
    "type": "version", 
    "tag": "v3.8.1", 
    "commit": "ffa615b25ebf4fac392726b17c857d429acf244c" 
    }, 
    "_source": "git://github.com/gfranko/jquery.selectBoxIt.js.git", 
    "_target": "~3.8.1", 
    "_originalSource": "jquery.selectBoxIt", 
    "_direct": true 
} 

답변

3

.bower.json 종속성 확인 중에 바우어에 의해 생성 된 파일입니다 : 그것은 가치가 무엇을 위해, 나는 다음 해당 파일을 포함 시켰습니다. bower.json과 동일하지 않으며 일반적으로 변경 될 수있는 internal 파일이므로 사용해서는 안됩니다.
.bower.json 파일 만 표시되는 경우 패키지에 bower.json이 없음을 의미합니다 (Bower는 실제로 해당 장치없이 작동 할 수 있음). 이 경우 "메인"속성을 찾을 수 없습니다.
예를 들어, jquery.selectBoxIt.js 패키지의 master 분기에만 bower.json 파일이 있지만 릴리스 태그에는 없습니다 (아직 릴리스되지 않은 것 같습니다). 이 문제를 해결하면 Bower는 .bower.json 파일에서 볼 수 있듯이 3.8.1 git 태그를 사용합니다. 이 태그에는 bower.json 파일이 없습니다.
그런 패키지의 경우 CommonsJS와 같은 다른 옵션을 고려할 수 있습니다.

+0

지금까지 웹팩 구성에 추가 플러그인을 추가했습니다. 이것은'.bower.json'의'_originalSource' 필드를 봅니다. 작동하지만 위험한 해결책이라고 생각하십니까? 그렇게 생각한다면 CommonJS를 사용하는 것에 의지 할 것입니다. –

+0

'_originalSource'는 main 속성과 같지 않으므로 사용하는 것이 좋은지 잘 모르겠습니다. bower.json이없는 경우에는 주 파일이 무엇인지 알 수 없습니다. 그런 경우에는이 정보가 들어있는 다른 설명자를 사용해야한다고 생각합니다. 또한 .bower.json 파일의 구조는 공개되지 않으며 향후 변경 될 수도 있고 그렇지 않을 수도 있습니다. –

관련 문제