web-dev-qa-db-de.com

Importiere Jquery mit Glut-Cli

Da ember-cli 0.0.34 jquery als vordefinierte Datei aus der .jshint-Datei entfernt wird. Jquery muss also importiert werden. Ich erhalte jedoch die folgende Fehlermeldung:

import $ from 'jquery';

Der Fehler, den ich erhalte, ist:

ENOENT, no such file or directory 'S:\...\tmp\tree_merger-tmp_dest_dir-Nb27WzDk.tmp\jquery.js'
Error: ENOENT, no such file or directory 'S:\...\tmp\tree_merger-tmp_dest_dir-Nb27WzDk.tmp\jquery.js'
    at Object.fs.statSync (fs.js:684:18)
    at addModule (S:\...\node_modules\ember-cli\node_modules\broccoli-es6-concatenator\index.js:81:46)
    .....
29
Willem de Wit

Ich habe das Problem gelöst, indem ich Jquery überhaupt nicht importierte. jQuery ist über Ember verfügbar. $ ( link )

Also habe ich meinen Code geändert, um Ember.$(...) anstelle von $(...) zu verwenden.

50
Willem de Wit

Nachdem ich ember-cli auf 0.0.34 aktualisiert habe, ist das gleiche Problem aufgetreten. Obwohl ich noch $ (jQuery) in meinem Code verwenden konnte, warf JSHint den Fehler weiter:

project/views/blah.js: line 6, col 9, '$' is not defined.

Sie können Ihren .jshintrc bearbeiten und $ wieder zu predef hinzufügen.

{
  "predef": {
    // ...
    "$": true,
    // ...
  },
  // ...
}

Würde definitiv eine Methode bevorzugen, die import verwendet. 

Ich bin nicht sicher, ob dies hilfreich sein wird, aber ich konnte die Datei während der Erstellung mithilfe der folgenden Zeile finden. Dies führte jedoch zu Problemen im Browser:

import $ from 'vendor/jquery/dist/jquery';

5
rog

$ wird nach dem Rendern/Instantiieren wie üblich von jQuery verfügbar.

Wenn jQuery verwendet werden soll, ist ansonsten das Präfix Ember erforderlich.

Lenker gibt es ebenfalls als Ember.Handlebars, allerdings in der erweiterten Version von Ember.

2
greg.arnott

Ich habe das Problem gelöst, indem ich diesen Code meiner JS-Datei hinzugefügt habe

jQuery aus 'ember' importieren;

0
SeifBh

Neuere Versionen von Ember/Ember-CLI ermöglichen die Zerstörung, was den Import von Bibliotheken erheblich vereinfacht.

import Ember from 'ember';
const { $, get, set } = Ember;

Würde JQuery, Getter und Setter bringen.

0
sbatson5