使用ember-cli导入jquery

Wil*_*Wit 29 ember.js ember-cli

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

import $ from 'jquery';
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

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)
    .....
Run Code Online (Sandbox Code Playgroud)

Wil*_*Wit 50

我通过不导入jquery来解决问题.jQuery可以通过Ember获得.$(链接)

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

  • 为了避免在文件中更改`$`的每个实例,你可以将'var $ = Em.$;`下面的`import Em从'ember'中删除;` (11认同)
  • @thecodethinker:确保你已经在'ember'中包含`import Ember';`在你文件的顶部并使用最近的ember-cli版本. (3认同)
  • 我和@DuncanWalker一起去了:`var $ = Ember.$;`在'import Em from'ember'下面';' 好极了. (3认同)

rog*_*rog 5

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

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

您可以编辑.jshintrc并添加$回来predef.

{
  "predef": {
    // ...
    "$": true,
    // ...
  },
  // ...
}
Run Code Online (Sandbox Code Playgroud)

肯定更喜欢使用方法import.

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

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