装载JqueryUI的Browserify不起作用

时间:2016-08-08 20:43:07

标签: jquery jquery-ui datepicker gulp browserify

我在使用Browserify加载Jquery-UI时遇到问题。

jquery和jquery-ui的节点模块正常加载,没有任何问题。只有当我尝试使用browserify将它们变成捆绑包并加载JqueryUI datepicker时,我才在浏览器中收到以下javascript错误:

  

jQuery.Deferred异常:$(...)。datepicker不是函数   TypeError:$(...)。datepicker不是函数

app.js包含以下内容:

window.$ = window.jQuery = require('jquery');
require('jquery-ui');

我也在使用gulp和laravel-elixer,我的package.json包含:

{
   "private": true,
   "scripts": {
     "production": "gulp --production",
     "dev": "gulp watch",
   },
   "dependencies": {
     "gulp": "^3.9.1",
     "jquery": "^3.1.0",
     "jquery-ui": "^1.12.0",
     "laravel-elixir": "^5.0.0"
   }
}

gulpfile.js包含:

var elixir = require('laravel-elixir');
elixir(function (mix) {
    mix.sass('app.scss');
    mix.browserify('app.js');
    mix.version(['css/app.css', 'js/app.js']);
});

这是一个错误还是我做错了什么?感谢

1 个答案:

答案 0 :(得分:2)

可能是您正在使用jQuery-UI 1.12。 Browserify与新版本不兼容。 官方升级页面说:

  

如果您正在使用browserify:本机化浏览器不支持我们的UMD标头,并且deamdify插件有阻止错误。如果您依赖于该组合,请帮助修复该错误!

https://jqueryui.com/upgrade-guide/1.12/

我自己没有尝试过,但您可以通过要求个别小部件来实现它

  

var autocomplete = require(" jquery-ui / ui / widgets / autocomplete");