【问题标题】:Angular-meteor slick-carousel causes JQuery to load twiceAngular-meteor slick-carousel 导致 JQuery 加载两次
【发布时间】:2017-02-27 01:34:41
【问题描述】:

我现在在一个项目中使用 Angular-meteor,我有一个关于使用 NPM 的问题。我正在使用一个特定的库(slick-carousel ......还有 angular-slick-carousel),当我通过 npm 安装它然后尝试在我的应用程序中使用它时,我在 modules.js 中定义了两次 jquery我假设是由流星放在一起的文件。所以我在 slick-carousel (完美)之前定义了一次 JQuery。然后在 slick-carousel 之后再次定义它,导致注册的 $.fn.slick 函数被清除。我认为它再次包含 jquery,因为 slick-carousel 节点包附带包含 jquery 的 node_modules 文件夹,导致它再次加载。

这会导致以下情况发生:

modules.js?hash=96df622…:14632 TypeError: slickness.not(...).slick is not a function

设置它的最简单方法是什么,以便 jQuery 只加载一次,并且在 slick-carousel 之前加载?我想有一种非常简单的方法可以让打包者知道这里的依赖顺序,但我对整个生态系统还是很陌生。

【问题讨论】:

  • 当你说 modules.js 时,你是指 .meteor/packages 吗? Meteor 默认包含 jquery,Angular 也是如此。您很可能包含 2 个不同版本的 jquery,很可能是通过 node_modules/*/package.json 文件之一中的包依赖关系。如果软件包依赖于特定版本,您可以安装该版本,它可能会为您解决问题

标签: angularjs node.js meteor npm angular-meteor


【解决方案1】:

与其导入整个 slick-carousel 依赖项,不如只导入你需要的文件。

例如, 导入“slick-carousel/slick/slick.css”; 和 导入“slick-carousel/slick/slick.js”;

只需不要导入包含重复 jquery 文件的 slick-carousel 的 node_modules 目录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 2020-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    相关资源
    最近更新 更多