我在使用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']);
});
这是一个错误还是我做错了什么?感谢
答案 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");