我有一些在一个js文件中定义并在其他文件中使用的函数。他们每个都有(?s)
个评论,我将我的eslint env设置为browser / jquery。基于我对documentation的阅读,这是我应该需要的,但它似乎没有用。
我在这里做错了什么?
这是.eslintrc(它扩展this one,虽然我没有/* exported functionName */
得到相同的行为):
extends
{
"extends": "../../.eslintrc",
"env": {
"browser": true,
"jquery": true
}
}
最后,这是我从eslint得到的输出:
/**
* Returns the next hour as Date
* @return {Date} the next hour
*/
/* exported nextHour */
function nextHour() {
var oneHour = new Date();
oneHour.setHours(oneHour.getHours() + 1);
return oneHour;
}
如果我用/Users/nfriedly/visual-recognition-nodejs/public/js/demo.js
24:10 error 'nextHour' is defined but never used no-unused-vars
37:10 error 'resize' is defined but never used no-unused-vars
/Users/nfriedly/visual-recognition-nodejs/public/js/use.js
26:10 error 'setupUse' is defined but never used no-unused-vars
替换/* exported...
条评论,则可行,但我知道这不是正确的解决方案。
您可以从https://github.com/watson-developer-cloud/visual-recognition-nodejs/tree/eslint-exported查看完整的项目,然后运行// eslint-disable-next-line no-unused-vars
,如果您想亲眼看到它。
答案 0 :(得分:1)
显然,airbnb配置指定的Babel-ESLint解析器可以覆盖配置文件的解析,以打破记录的级联行为。设置"parser": null
会解决此问题。
答案 1 :(得分:0)
您的配置声明您正在使用Node环境。 Node在每个模块周围都有一个额外的范围,因此Node中不可能实现全局变量(至少与浏览器中的方式不同)。因此,当no-unused-vars
规则看到任何具有globalReturn标志的环境(节点,CommonJS,共享节点浏览器)或模块时,它会忽略/* exported */
个注释。如果要使用全局变量和导出的注释,则需要删除Node环境并启用浏览器环境。