jshint报错:'Ember'未定义。

16

我有一个标准的Ember main.js文件,它的开头是这样的:

this.App = Ember.Application.create({
    LOG_TRANSITIONS: true,
    VERSION: '1.0.0',
    ready: function () {
        console.log('App version: ' + App.VERSION + ' is ready.');
    }
});

在部署阶段,将其通过jshint运行,会发现Ember未定义,在服务器上的该特定文件中确实如此。因此,会显示许多错误消息。

script标记在index.html中使得Ember在浏览器中可用:

<script src="scripts/vendor/ember-1.0.0-rc.2.js"></script>

我该如何告诉jshint关于Ember的信息?

2个回答

19
以下代码应该可以实现:
/*global Ember */
this.App = Ember.Application.create({
    LOG_TRANSITIONS: true,
    VERSION: '1.0.0',
    ready: function () {
        console.log('App version: ' + App.VERSION + ' is ready.');
    }
});

JS Hint文档中找到


你的意思是在实例化this.App之前,在main.js中添加/* global Ember */吗?但这对我不起作用。 - blueFast
那么你的 JSHint 设置肯定有问题。它对我来说是有效的,而且正如你所看到的,我是从文档中获取的。 - mavilein
1
我在 jshint 邮件列表中找到了答案:你不能在 global 前面加空格。它必须像这样:/*global Ember */。你能否更正你的答案,以便我可以接受它? - blueFast
1
空间似乎不再是问题了。我尝试写/* global Ember */,错误消失了。 - Lucas

16
如果你正在使用新的ES6,例如从ember-cli,你必须导入Ember:
import Ember from 'ember';

我正在跟随Evil Trout的Ember Reddit教程,在测试中看到了以下错误:

my-new-app/routes/subreddit.js should pass jshint.
my-new-app/routes/subreddit.js: line 3, col 16, 'Ember' is not defined.

将上述代码添加到my-new-app/routes/subreddit.js文件的顶部可以通过测试。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接