如何将jQuery和jQuery ui用于包裹(捆绑机)?

如何将jQuery和jQuery ui用于包裹(捆绑机)?,jquery,jquery-ui,parcel,Jquery,Jquery Ui,Parcel,我通过npm安装了jquery(3.2.1)和jquery ui dist(1.12.1)。(它们不包括在html中作为脚本标记) 在客户端脚本中,我使用: window.$ = require('jquery');// plain jQuery stuff works fine import 'jquery-ui-dist'; // breaks whole jQuery, with Error (missing module 8) 今天,我在angularjs应用程序和包裹捆绑程序

我通过npm安装了jquery(3.2.1)和jquery ui dist(1.12.1)。(它们不包括在html中作为脚本标记)

在客户端脚本中,我使用:

window.$ = require('jquery');// plain jQuery stuff works fine
import 'jquery-ui-dist';     // breaks whole jQuery, with Error (missing module 8)

今天,我在angularjs应用程序和包裹捆绑程序中遇到了类似的问题。 似乎parcel不能很好地处理(目前?)外部模块中引入的全局变量。除其他问题外

一种方法;您可以使用普通requires而不是导入,如下所示:

var jquery = require("jquery");
window.$ = window.jQuery = jquery; // notice the definition of global variables here
require("jquery-ui-dist/jquery-ui.js");

$(function() {
  $("#datepicker").datepicker();
});
如果坚持使用导入,则应创建一个单独的文件,例如使用以下内容调用它
import jquery.js

import jquery from "jquery";

export default (window.$ = window.jQuery = jquery);
并将其导入主文件:

import "./import-jquery";
import "jquery-ui-dist/jquery-ui.js";

$(function() {
  $("#datepicker").datepicker();
});

我真的希望在不久的将来我们能得到更好的支持。

我尝试了两种方法,都成功了,非常感谢!顺便说一句,这个多重赋值(window.$=window.jQuery=jQuery)有什么共同的名字吗?这样我就可以了解一下它了?在我看来,这个答案有很好的副作用:)@okram寻找«链接作业javascript»。在mdn上有一小段关于这个的内容。我可以说,到今天为止,Parcel仍然不完全支持这些模块诱导的全局变量。