使用 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 插件组件中找到 npm 模块

我在 Ember-CLI 中将 Ember-I18n 的翻译放在哪里?

使用通过 ember-cli 创建的应用程序获取“未捕获的错误:断言失败:Ember 视图需要 1.7 和 2.1 之间的 jQuery”

html怎么导入jquery

前端jQuery导入方式