使用带有es6导入的jquery插件

时间:2017-10-01 13:52:45

标签: javascript webpack ecmascript-6

我正在尝试使用import将rangelider导入到es6类中,但它始终返回rangeslider is not a function

import * as rangeslider from 'rangeslider.js';

export class Layout {

    testFunc() {
        $(".rangepicker").rangeslider({
            onSlide: function(position, value)
            {
                $(this).parent().find(".rangepicker-output").html(value + 'px');
            }
        });
    }
}

2 个答案:

答案 0 :(得分:2)

以下是rangeslider.js的源代码,不提供es6模块支持。它支持AMD和CommonJs,但不支持es6。

function(factory) {
'use strict';

if (typeof define === 'function' && define.amd) {
    // AMD. Register as an anonymous module.
    define(['jquery'], factory);
} else if (typeof exports === 'object') {
    // CommonJS
    module.exports = factory(require('jquery'));
} else {
    // Browser globals
    factory(jQuery);
}

es6模块化如下:

export default function foo() {
  console.log('foo');
}

答案 1 :(得分:1)

从jQuery插件导入导出值没有意义,因为它们通常会导出jQuery实例。

导入的rangeslider未在代码中使用的事实将其从已转换的代码中删除,根本不会导入包。

应该是

import 'rangeslider.js';