如何在parcel(bundler)中使用jQuery和jQuery-ui?

时间:2017-12-25 12:16:35

标签: 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)

1 个答案:

答案 0 :(得分:28)

今天我遇到了类似的问题,其中有一个angularjs app&包裹打捆。 看来parcel不能很好地处理外部模块中引入的全局变量(现在?)。还有其他问题。

一种方法;你可以使用普通需求而不是像这样的导入:

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();
});

我希望我们能在不久的将来更好地支持这一点。