2015-10-27 3 views
2

Я пытаюсь использовать скорость вместе с jQuery (только для поддержки IE8) в модуле ES6. Рассмотрим этот код:Использование скорости с jquery для IE8 в ES6

import { Component } from 'react'; 
import ReactDOM from 'react-dom'; 
import jquery from 'jquery'; 
import velocity from 'velocity-animate'; 

export default class ScrollTo extends Component { 
    render() {...} 
    scrollToTop() { 
     velocity(ReactDOM.findDOMNode(this), 'scroll', { container: ReactDOM.findDOMNode(this.props.container) }); 
    } 

В IE8 скорость жалуется, что он не может найти jQuery. Я проверил в источнике, и похоже, что скорость смотрит на jQuery на объект окна, но я импортирую его как модуль.

Есть ли способ создать/скопировать скорость с импортированным jquery?

ответ

0

вы можете использовать ShimPlugin для Призонная шайба JQuery с WebPack

см: https://github.com/webpack/webpack/issues/192

или использовать ProvidePlugin выставить JQuery к окну, так что вам не придется import jquery каждый раз, когда вам это нужно.

new webpack.ProvidePlugin({ 
    $: "jquery", 
    jQuery: "jquery", 
    "window.jQuery": "jquery" 
}) 

плагин ProvidePlugin Этот плагин делает модуль доступен как переменная в каждом модуле. Модуль требуется, только если вы используете переменную.

Пример: Сделать $ и jQuery доступными в каждом модуле без записи require ("jquery").