使用 ember-cli 导入 jquery
Posted
技术标签:
【中文标题】使用 ember-cli 导入 jquery【英文标题】:Import jquery with ember-cli 【发布时间】:2014-08-02 13:04:53 【问题描述】:由于 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)
.....
【问题讨论】:
【参考方案1】:确保您已在使用的应用程序/插件的package.json
内的dependencies
中列出@ember/jquery
。它可能看起来像这样:
"@ember/jquery": "^1.1.0"
那你可以继续使用jquery in the recommended way:
import $ from 'jquery';
【讨论】:
【参考方案2】:较新版本的 Ember/Ember-CLI 允许解构,从而更容易导入库。
import Ember from 'ember';
const $, get, set = Ember;
会引入 jquery、getter 和 setter。
【讨论】:
【参考方案3】:我通过将此代码添加到我的 JS 文件中解决了这个问题
从'ember'导入jQuery;
【讨论】:
【参考方案4】:$ 在渲染/实例化后变为可用,就像 jQuery 的常用用法一样。
如果需要使用 jQuery,否则需要 Ember 前缀。
Handlebars 也可以作为 Ember.Handlebars 使用,尽管是 Ember 扩展版本。
【讨论】:
我不确定这是否曾经是真的,但在 Ember 1.12 中它不是真的。 哈!是的。考虑到这篇文章的年龄,这是 0.7 或 0.8。【参考方案5】:我完全不导入 jquery 解决了这个问题。 jQuery 可通过 Ember.$ (link) 获得
所以我将代码更改为使用Ember.$(...)
而不是$(...)
【讨论】:
当我尝试这样做时,我收到一条错误消息,提示 Ember.$(...) not defined :( 有什么想法吗? @thecodethinker:确保在文件顶部包含import Ember from 'ember';
并使用最新的 ember-cli 版本。
为避免更改文件中$
的每个实例,您只需将var $ = Em.$;
放在import Em from 'ember';
下方即可
我和@DuncanWalker 一起去了,但是:var $ = Ember.$;
在'import Em from 'ember'下;'耶。
如何导入包含在brocfile中的jqueryui?【参考方案6】:
在将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';
【讨论】:
是的,这确实有效。但是 jquery 将被传输两次:一次在您的 cendor.js 中,一次打包到您的 application-name-compiled-file.js 中。以上是关于使用 ember-cli 导入 jquery的主要内容,如果未能解决你的问题,请参考以下文章
如何为特定浏览器导入脚本 Ember-CLi Broccoli
我在 Ember-CLI 中将 Ember-I18n 的翻译放在哪里?
使用通过 ember-cli 创建的应用程序获取“未捕获的错误:断言失败:Ember 视图需要 1.7 和 2.1 之间的 jQuery”