Gra*_*pho 2 jslint ember.js ember-cli
使用Ember-CLI并运行ember服务器时,我从JSLint收到以下错误:
[app_path]/filename.js: line 1, col 16, 'Ember' is not defined.
Run Code Online (Sandbox Code Playgroud)
添加import Ember from 'ember';修复此内容.
这是我现在所有文件的官方方式吗?该文档尚未提及此更改.
编辑
来自Stephan Penner:
我们明确地将它[Ember]从[.jshintrc文件]中删除了,请改为输入ember.
我们计划将越来越多的余烬暴露为es6,有一天这将允许工具去除你没有使用的部分余烬.导致较小的构建.
不过,直到那个日期,它可能会为你节省很多麻烦.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
}
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我定义了Ember(也可以定义Em),jQuery使用'$'和Modernizr.这将停止出现在终端中的jshint错误消息.
这是根据ember-cli文档:
"如果要使用写入全局命名空间的外部库(例如moment.js),则需要将它们添加到项目的.jshintrc文件的predef部分,并将其值设置为true.如果在测试中使用lib ,还需要将它添加到您的tests/.jshintrc文件中."