web-dev-qa-db-fra.com

Importer jquery avec ember-cli

Depuis ember-cli 0.0.34, jquery est supprimé du fichier .jshint comme prédéfini . Donc, jquery doit être importé, mais l'erreur suivante s'affiche:

import $ from 'jquery';

L'erreur que je reçois est:

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

J'ai résolu le problème en n'important pas du tout jquery. jQuery est disponible via Ember. $ ( link )

J'ai donc changé mon code pour utiliser Ember.$(...) au lieu de $(...)

50
Willem de Wit

J'ai rencontré le même problème après avoir mis à jour ember-cli à 0.0.34. Même si je pouvais toujours utiliser $ (jQuery) dans mon code, JSHint continuait à lancer l'erreur:

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

Vous pouvez éditer votre .jshintrc et ajouter $ à predef.

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

Préférerait certainement une méthode utilisant import aussi. 

Je ne suis pas sûr que cela puisse vous aider, mais j'ai pu localiser le fichier pendant la construction en utilisant la ligne ci-dessous, mais cela a causé des problèmes dans le navigateur:

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

5
rog

$ devient disponible après le rendu/l'instanciation, conformément à l'utilisation habituelle de jQuery.

Si vous souhaitez utiliser jQuery, le préfixe Ember est requis.

Le guidon est également disponible sous le nom Ember.Handlebars, bien que la version étendue Ember.

2
greg.arnott

J'ai résolu le problème en ajoutant ce code à mon fichier JS

importer jQuery de 'ember';

0
SeifBh

Les versions plus récentes de Ember/Ember-CLI permettent la déstructuration, ce qui facilite considérablement l’importation de bibliothèques.

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

Apporterait dans jQuery, Getters et setters.

0
sbatson5