29

由于 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)
    .....
4

6 回答 6

50

我根本不导入 jquery 解决了这个问题。jQuery 可通过 Ember.$ (链接)

所以我改变了我的代码来使用Ember.$(...)而不是$(...)

于 2014-06-16T06:13:10.460 回答
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';

于 2014-06-15T01:46:25.583 回答
2

$在渲染/实例化后变为可用,按照 jQuery 的常用用法。

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

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

于 2014-09-11T05:24:35.997 回答
0

我通过将此代码添加到我的 JS 文件中解决了这个问题

从'ember'导入jQuery;

于 2015-09-22T02:29:40.690 回答
0

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

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

会引入 jquery、getter 和 setter。

于 2015-09-23T22:58:11.380 回答
0

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

"@ember/jquery": "^1.1.0"

然后就可以按照推荐的方式继续使用jquery了

import $ from 'jquery';
于 2020-04-13T19:20:56.433 回答