2016-10-17 2 views
0

Ich benutze Angular-Meteor für ein Projekt jetzt und ich hatte eine Frage über die Verwendung von NPM. Ich verwende eine spezielle Bibliothek (Slick-Karussell ... und auch eckig-glatt-Karussell), und wenn ich es über npm installiere und dann versuche, es in meiner App zu verwenden, bekomme ich jquery zweimal in meinem modules.js definiert Datei, die von Meteor zusammengesetzt wurde nehme ich an. Also habe ich JQuery einmal vor Slick-Karussell definiert (perfekt). Dann wird es nach einem Slick-Karussell erneut definiert, was dazu führt, dass die registrierte $ .fn.slick-Funktion gelöscht wird. Ich denke, dass es wieder jquery enthält, da das Slick-Carousel-Knotenpaket mit dem Knoten "node_modules" mit jquery geliefert wird, wodurch es erneut geladen wird.Schräg-Meteor-Karussell verursacht JQuery zweimal laden

Dies bewirkt folgendes geschehen:

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

Was ist der einfachste Weg, dies bis zu setzen, so jQuery wird nur einmal geladen, und vor Slick-Karussell? Ich kann mir vorstellen, dass es einen ziemlich einfachen Weg gibt, den Packer die Abhängigkeitsreihenfolge hier zu erfahren, aber ich bin noch ziemlich neu in diesem ganzen Ökosystem.

+0

Wenn du modules.js sagst, meinst du .meteor/packages? Meteor enthält standardmäßig jquery, ebenso wie Angular. Es ist sehr wahrscheinlich, dass Sie 2 verschiedene Versionen von jquery enthalten, höchstwahrscheinlich über eine Paketabhängigkeit in einer der Dateien node_modules/*/package.json. Wenn ein Paket von einer bestimmten Version abhängig ist, können Sie diese Version installieren und das Problem möglicherweise beheben – Mikkel

Antwort

0

Anstatt die gesamte Slick-Karussell-Abhängigkeit zu importieren, importieren Sie nur die Dateien, die Sie benötigen.

Zum Beispiel Import "Slick-Karussell/Slick/Slick.css"; und importieren "Slick-Karussell/Slick/Slick.js";

Importieren Sie einfach nicht das Verzeichnis node_modules von slick-carousel, das die doppelten jquery-Dateien enthält.

Verwandte Themen