使用 Ember-CLI 并运行 ember 服务器时,我从 JSLint 收到以下错误:
[app_path]/filename.js: line 1, col 16, 'Ember' is not defined.
添加import Ember from 'ember';
修复此问题。
这是现在处理我所有文件的官方方式吗?该文档尚未提及此更改。
编辑
从斯蒂芬彭纳:
我们明确将其 [Ember] 排除在 [.jshintrc 文件] 之外,请改为导入 ember。
我们计划将越来越多的 ember 暴露为 es6,有一天这将允许工具移除您不使用的部分 ember。导致更小的构建。
尽管如此,在那个日期之前,它可能会为您省去很多麻烦.jshintrc
。
过时的答案
在您的.jshintrc
文件(或tests/.jshintrc
)中,将您不想在每个模块中定义的全局命名空间中的任何内容添加到 predef 对象。例如:
{
"predef": {
"document": true,
"window": true,
"SprintStatusENV": true,
"Ember": true, // Added
"$": true, // ADDED
"Modernizr": true // ADDED
},
"browser" : true,
"boss" : true,
"curly": true,
"debug": false,
"devel": true,
"eqeqeq": true,
"evil": true,
"forin": false,
"immed": false,
"laxbreak": false,
"newcap": true,
"noarg": true,
"noempty": false,
"nonew": false,
"nomen": false,
"onevar": false,
"plusplus": false,
"regexp": false,
"undef": true,
"sub": true,
"strict": false,
"white": false,
"eqnull": true,
"esnext": true,
"unused": true
}
在这个例子中,我定义了 Ember(也可以定义 Em)、使用 '$' 的 jQuery 和 Modernizr。这将停止出现在终端中的 jshint 错误消息。
这是根据ember-cli 文档:
“如果您想使用写入全局命名空间的外部库(例如 moment.js),您需要将它们添加到项目的 .jshintrc 文件的 predef 部分并将其值设置为 true。如果您在测试中使用 lib ,也需要将其添加到您的 tests/.jshintrc 文件中。”