2016-11-11 6 views
3

Ich nahm zunächst an, dass es einfach bedeutet, laden Sie das jQuery-Modul und initialisieren Sie es in einer Variablen namens $.

Aber dann, mit Atom mit dem Atom-Typescript, habe ich einen Fehler, der besagt, dass es "Modul 'jquery' nicht finden kann". Obwohl der gesamte Code im Browser funktioniert, sieht es so aus, als ob atom-typescript nichts auflösen kann, was aussieht, als ob x von y importiert wird.

Jetzt, ES6 doc, ich habe herausgefunden, dass Sie eine Klasse/Funktion aus einem Modul importieren. Die Bedeutung ist völlig anders, und es macht Sinn, mit zum Beispiel dieses:

import { Component } from 'angular2/core'; 

Aber was ist das im Fall von jQuery bedeuten?

Ich Mischen wahrscheinlich verschiedene Probleme in dem gleichen, aber eine Erklärung diese Verwirrung würde klar, viel im Voraus, so danke :)

+2

Die wenig Informationen, die Sie fehlt in Bezug auf 'default' Export von Modulen Sie müssen auch eine TypeScript-Definition für jQuery in Ihrem Projekt haben – Marty

+0

https: //developer.moz illa.org/de/docs/web/javascript/reference/statements/export#Using_the_default_export – Phil

Antwort

1

die Aussage import $ from jquery ziemlich Mengen Injektion Abhängigkeit. So wie man import React from 'react' schreiben würde, um sich Zugriff auf die React-Bibliothek innerhalb einer Datei zu verschaffen, so kann man import $ from jquery schreiben. (Falls es Sie werfen weg, wird der Dollar-Zeichen verwendet, weil jQuery und seine Methoden zugegriffen werden mit dem Dollar (aka jQuery) Operator

Was die Fehler geworfen, dass mehrere Dinge sein könnte.

  1. Wenn Sie separat jQuery als Abhängigkeit in Ihrer package.json Datei sowie enthielt einen <script> Tag von einem jQuery CDN installiert ist, wird dieser Fehler ausgelöst werden. Wenn Sie Verwendung von jQuery durch NPM ist, dann ist die import $ from jquery Syntax richtig/notwendig.Wenn Sie beabsichtigen, jQuery über ein CDN zu verwenden (wie ich würde reco mmend), ist die import Anweisung unnötig. (Da Sie dieses Skript-Tag in Ihre index.html eingefügt haben, haben Sie im gesamten Umfang Ihrer Anwendung Zugriff auf jQuery und seine Bibliothek.) Tue jedoch nicht beides.

  2. Beachten Sie auch, dass im Fall der import { Component } from 'angular2/core'; Anweisung etwas etwas anderes vor sich geht. Nämlich importiert man den genannten ExportComponent, laut der (AMD specification). Man kann sich vorstellen, in diesem Fall nur einen Teil der größeren Angular2-Kernbibliothek zu importieren, wenn die gesamte Bibliothek unnötig wäre.

Nur um sicher zu sein, prüfen Sie, ob Sie tatsächlich entweder selbst Zugriff auf jQuery durch ein CDN gegeben haben, oder indem sie sie als NPM Abhängigkeit installieren.

+0

Danke für diese großartige Antwort. Ich versuche, einen sauberen Bootstrap für all dies zu erstellen, und es ist hier verfügbar: https://github.com/jordymeow/meowbs-2016. Sie können es sich ansehen. jQuery ist im Moment nicht enthalten, aber Atom-Typescript zeigt auch die gleichen Fehler für alle Module (besonders die Angularen). Ich vermisse etwas, aber ich habe keine Ahnung was ... – TigrouMeow