2016-08-22 6 views
1

최근 프런트 엔드 용 Webpack을 사용하기 시작했고 모듈을 사용하여 문제가 발생했습니다.
예를 들어, 모듈 두 개를 가지고 있는데 하나는 다른 모듈을 사용합니다 (구체적으로 angular-bootstrap-sliderbootstrap-slider). Slider 함수가 정의되지 않았기 때문에 angular-bootstrap-slider이 초기화하지 못했습니다.
이제 앵글 부트 스트랩 슬라이더에 Slider (전 jquery 및 angular libs로 수행) 또는 Slider을 가져올 수 있음을 이해합니다.
전역 내보내기는 webpack을 사용하지 않고 라이브러리에서 가져 오는 것이 코드를 변경한다는 것을 의미하기 때문에 두 옵션이 마음에 들지 않습니다.
그래서 나는 무엇인가 놓치고 있습니까? 아니면 의존성을 다루는 모범 사례가 있습니까?webpack과 함께 모듈 사용

답변

0

찾고있는 것은 shimming modules입니다.

... 
plugins: [ 
    new webpack.ProvidePlugin({ 
    'Slider': 'bootstrap-slider' 
    }) 
] 
+0

글로벌이 아니십니까? –

+0

아니요,'require()'호출로 컴파일되었습니다 –

+0

라이브러리의 모든 곳에서'new Slider'를 호출하면 require()로 컴파일됩니까? 하지만'Slider' 생성자가있는 두 개의 라이브러리가 있다면 어떻게 될까요? –

0

난 당신이 imports-loader를 사용할 수 있다고 생각 : :

이것은 당신이 Slider 모듈 bootstrap-slider에서 수입되는 사실에 있음을 선언 할 수 있습니다 웹팩에 대한 https://github.com/webpack/imports-loader

수입 로더

변수를 모듈 범위에 삽입하는 데 사용할 수 있습니다. 타사 모듈이 $와 같은 변수 또는 창 개체 인 변수에 의존하는 경우 특히 유용합니다. 입니다.

+0

과 같이 이름을 바꿀 수 있습니다. 멋지다, 나는 분명히 이것을 시도 할 것이다 –

+0

이것은 또한 좋은 해결책이지만 라이브러리의 소스를 편집해야하는 것인가? –

+0

필자가 이해하는 한,이 로더는 대상의 소스에'require' 호출을 추가합니다. – Digger2000

관련 문제