eslint /* exported functionName */ 在浏览器环境中不工作
eslint /* exported functionName */ not working in browser env
我有一些函数在一个 js 文件中定义并在其他文件中使用。他们每个人都有 /* exported functionName */
评论,我将我的 eslint env 设置为 browser/jquery。根据我对 documentation 的阅读,这就是我所需要的,但它似乎不起作用。
我做错了什么?
这是 .eslintrc(它扩展了 this one,尽管我在没有 extends
的情况下得到了相同的行为):
{
"extends": "../../.eslintrc",
"env": {
"browser": true,
"jquery": true
}
}
并且,这是函数之一(这里是 second and third):
/**
* 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;
}
最后,这是我从 eslint 得到的输出:
/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
如果我用 // eslint-disable-next-line no-unused-vars
替换 /* exported...
注释,它会起作用,但我知道这不是正确的解决方案。
您可以从 https://github.com/watson-developer-cloud/visual-recognition-nodejs/tree/eslint-exported 查看完整的项目,然后 运行 npm install; npm test
如果您想亲眼看看它。
您的配置表明您在 Node 环境中工作。 Node 在每个模块周围都有一个额外的范围,因此全局变量在 Node 中实际上是不可能的(至少与在浏览器中的方式不同)。因此,当 no-unused-vars
规则看到任何带有 globalReturn 标志的环境(节点、CommonJS、共享节点浏览器)或模块打开时,它会忽略 /* exported */
注释。如果要使用全局变量和导出的注释,需要移除Node环境并启用浏览器环境。
显然,airbnb 配置指定的 Babel-ESLint 解析器可以覆盖配置文件的解析,从而破坏记录的级联行为。设置 "parser": null
解决了这个问题。
我有一些函数在一个 js 文件中定义并在其他文件中使用。他们每个人都有 /* exported functionName */
评论,我将我的 eslint env 设置为 browser/jquery。根据我对 documentation 的阅读,这就是我所需要的,但它似乎不起作用。
我做错了什么?
这是 .eslintrc(它扩展了 this one,尽管我在没有 extends
的情况下得到了相同的行为):
{
"extends": "../../.eslintrc",
"env": {
"browser": true,
"jquery": true
}
}
并且,这是函数之一(这里是 second and third):
/**
* 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;
}
最后,这是我从 eslint 得到的输出:
/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
如果我用 // eslint-disable-next-line no-unused-vars
替换 /* exported...
注释,它会起作用,但我知道这不是正确的解决方案。
您可以从 https://github.com/watson-developer-cloud/visual-recognition-nodejs/tree/eslint-exported 查看完整的项目,然后 运行 npm install; npm test
如果您想亲眼看看它。
您的配置表明您在 Node 环境中工作。 Node 在每个模块周围都有一个额外的范围,因此全局变量在 Node 中实际上是不可能的(至少与在浏览器中的方式不同)。因此,当 no-unused-vars
规则看到任何带有 globalReturn 标志的环境(节点、CommonJS、共享节点浏览器)或模块打开时,它会忽略 /* exported */
注释。如果要使用全局变量和导出的注释,需要移除Node环境并启用浏览器环境。
显然,airbnb 配置指定的 Babel-ESLint 解析器可以覆盖配置文件的解析,从而破坏记录的级联行为。设置 "parser": null
解决了这个问题。