我使用Nodejs
,Eslint ^7
和Mongoose ^5
。我已经添加了eslint-plugin-security ^1
推荐规则到我的.eslintrc.js如下:
parserOptions: {
ecmaVersion: 2021,
},
env: {
commonjs: true,
es6: true,
browser: false,
node: true,
},
plugins: ['security'],
extends: [
'plugin:security/recommended',
],
当我运行eslint时,我得到下面的TypeError:
Oops! Something went wrong! :(
ESLint: 7.30.0
TypeError: Cannot read property 'type' of undefined
Occurred while linting /app/api/src/Repository/AppLog.js:38
at MemberExpression (/app/api/node_modules/eslint-plugin-security/rules/detect-child-process.js:34:87)
at /app/api/node_modules/eslint/lib/linter/safe-emitter.js:45:58
at Array.forEach (<anonymous>)
at Object.emit (/app/api/node_modules/eslint/lib/linter/safe-emitter.js:45:38)
at NodeEventGenerator.applySelector (/app/api/node_modules/eslint/lib/linter/node-event-generator.js:293:26)
at NodeEventGenerator.applySelectors (/app/api/node_modules/eslint/lib/linter/node-event-generator.js:322:22)
at NodeEventGenerator.enterNode (/app/api/node_modules/eslint/lib/linter/node-event-generator.js:336:14)
at CodePathAnalyzer.enterNode (/app/api/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js:711:23)
at /app/api/node_modules/eslint/lib/linter/linter.js:960:32
at Array.forEach (<anonymous>)
我检查了错误指向的行,但没有发现任何问题。
下面是我在/app/api/src/Repository/AppLog.js:38
上的代码:
async list() {
return this.LogModel.find().exec();
}
当我删除eslint-plugin-security时,一切正常插件。我猜是库本身有问题。
有解决这个问题的办法吗?
这也是我的问题。我还在其存储库
上创建了一个问题。当eslint遇到与Node.js的child_process.exec()
方法同名的代码中的Query.prototype.exec()时,会发生错误。
这个问题有一个可能的解决方案,我已经在这里描述了,但它仍然是开放的,我不知道如何解决它,另一个和/或更好的方法。