Browserify bundle js,但require(“jquery-datetimepicker”)不起作用

时间:2017-02-16 10:11:27

标签: javascript jquery node.js

我使用gulp + browserify捆绑我的javascript文件。 我npm install select2 --save

require("select2");

module.exports = {
    init: function() {
        $('#datetime-start').datetimepicker({
            dayOfWeekStart : 1,
            lang:'en',
            disabledDates:['1986/01/08','1986/01/09','1986/01/10'],
            startDate:  '1986/01/05'
        });
    }
}

这段代码效果很好,但后来我npm install jquery-datetimepicker --save。 然后我又写了一些代码:

require("jquery-datetimepicker");

module.exports = {
    init: function() {
        $('#datetime-start').datetimepicker({})
    }
}

browserify包是成功的,但是当我打开浏览器时,出现错误:

  

$(...)。datetimepicker不是函数。

可能是我错过了什么。

1 个答案:

答案 0 :(得分:0)

jquery-datetimepicker导出其工厂函数,该函数接收jquery作为参数来填充它(参见here),但似乎它被jquery-mousewheel exports object覆盖。肯定是一个问题,并在问题#412#496中进行了讨论。虽然存在解决方法以使其正常工作:

首先:

npm install jquery --save
npm install jquery-datetimepicker --save
npm install jquery-mousewheel --save
npm install https://github.com/kartik-v/php-date-formatter.git#closure --save

注意:<{strong> php-date-formatter#closure分支安装为主分支不支持umd模式。

然后:

var $ = require('jquery');
DateFormatter = require('php-date-formatter')($);
require('jquery-mousewheel/jquery.mousewheel.js')($);
require('jquery-datetimepicker/jquery.datetimepicker.js')($);

module.exports = {
    init: function() {
        $('#datetime-start').datetimepicker({})
    }
}