我试图在ES6模块中使用velocity和jQuery(仅用于IE8支持)。请考虑以下代码:
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。我检查了源代码,看起来像velocity在窗口对象上查找jQuery但是我将它作为模块导入。
有没有办法用导入的jquery实例化/绑定速度?
答案 0 :(得分:0)
您可以使用ShimPlugin来使用webpack来填充jquery
请参阅: https://github.com/webpack/webpack/issues/192
或使用ProvidePlugin将jquery公开给窗口,这样您每次需要时都不必import jquery
。
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.jQuery": "jquery"
})
插件ProvidePlugin此插件使模块可用作变量 在每个模块中。只有在使用变量时才需要该模块。
示例:无需编写即可在每个模块中使用$和jQuery 要求( “jquery的”)。