使用ember-cli导入jquery

时间:2014-06-12 09:05:40

标签: ember.js ember-cli

由于ember-cli 0.0.34 jquery已从预定义的.jshint文件中删除。 因此需要导入jquery,但在执行此操作时出现以下错误:

import $ from 'jquery';

我得到的错误是:

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)
    .....

6 个答案:

答案 0 :(得分:50)

我完全没有导入jquery解决了这个问题。 jQuery可以通过Ember。$(link

获得

所以我将代码更改为使用Ember.$(...)而不是$(...)

答案 1 :(得分:5)

我将ember-cli更新为0.0.34后遇到了同样的问题。虽然我仍然可以在我的代码中使用$(jQuery),但JSHint仍然抛出错误:

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

您可以修改.jshintrc并将$添加回predef

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

肯定更喜欢使用import的方法。

不确定这是否有任何帮助,但我可以使用下面的行在构建期间找到该文件,但它在浏览器中引起了一些问题:

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

答案 2 :(得分:2)

渲染/实例化后,

$ 变得可用,正如通常使用jQuery一样。

如果希望使用jQuery,则需要 Ember 前缀。

车把也可以作为Ember.Handlebars使用,尽管是Ember扩展版。

答案 3 :(得分:0)

我通过将此代码添加到我的JS文件

来解决了这个问题

从' ember';

导入jQuery

答案 4 :(得分:0)

较新版本的Ember / Ember-CLI允许进行解构,使导入库变得更加容易。

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

会引入jquery,getter和setter。

答案 5 :(得分:0)

确保在已使用的应用程序/附件的@ember/jquery中的dependencies中列出了package.json。它可能看起来像这样:

"@ember/jquery": "^1.1.0"

然后您可以继续使用jquery in the recommended way

import $ from 'jquery';