【问题标题】:Cannot get eslint to throw warning for no jsDoc on Ember classes, props, actions无法让 eslint 对 Ember 类、道具、动作上没有 jsDoc 发出警告
【发布时间】:2019-07-14 20:26:38
【问题描述】:

我正在我的 ember 项目中设置 eslint。我想强制使用 jsDoc 记录所有函数、类、操作和属性。

我面临的问题是我似乎无法让强制措施对动作、组件声明或对象属性起作用。

我最初尝试了“require-jsdoc”,但也注意到该规则已被弃用。然后我使用以下配置安装了 eslint-plugin-jsdoc:

rules: [
  ...
  'jsdoc/check-examples': 0,
  'jsdoc/check-param-names': 1,
  'jsdoc/check-tag-names': 1,
  'jsdoc/check-types': 1,
  'jsdoc/newline-after-description': 1,
  'jsdoc/no-undefined-types': 1,
  'jsdoc/require-description': 1,
  'jsdoc/require-description-complete-sentence': 1,
  'jsdoc/require-example': 1,
  'jsdoc/require-hyphen-before-param-description': 1,
  'jsdoc/require-param': 1,
  'jsdoc/require-param-description': 1,
  'jsdoc/require-param-name': 1,
  'jsdoc/require-param-type': 1,
  'jsdoc/require-returns': 1,
  'jsdoc/require-returns-check': 1,
  'jsdoc/require-returns-description': 1,
  'jsdoc/require-returns-type': 1,
]

仍然没有运气。知道如何使以下工作正常进行吗?

// throw eslint warning if not documented
export default Component.extend({
  someProp: false, // throw eslint warning if not documented
  actions: {
    someAction() {} // throw eslint warning if not documented
  }
});

所有其他自然函数定义都按预期工作,只是试图让这些情况正常工作。谢谢!

【问题讨论】:

  • rules 元素应该是 json 对象而不是数组。在您的代码中,您似乎在[ ] 而不是{ } 之间定义了它。如果是这样,它可能与它有关。
  • 那是我写这个问题的坏处,它是一个对象。我解决了这个问题,结果我需要打开一个新的终端会话来让我的 VIM ALE 反映这些变化(这是另一个问题):) 谢谢你的建议!
  • 你的配置中有"plugins": ["jsdoc"]吗?

标签: javascript ember.js eslint jsdoc


【解决方案1】:

由于 require-jsdoc 已被弃用,检查类声明和函数中是否存在 JSDoc cmets 的正确方法是安装 eslint-plugin-jsdoc 插件并使用 jsdoc/require-jsdoc 规则。

一旦你有:

rules: [
  ...
  'jsdoc/require-jsdoc': 1,
  ...
]

ESLint 将开始警告缺少 cmets。如果您确实包含一些评论,那么所有其他规则(如 jsdoc/require-descriptionjsdoc/require-param)都将被强制执行。

请注意,jsdoc/require-jsdoc 规则需要一些配置才能应用到不仅仅是函数声明。例如:

rules: [
  ...
  'jsdoc/require-jsdoc': [1, {'require': {
    FunctionExpression: true,
    ClassDeclaration: true
  }}],
  ...
]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-28
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    • 2012-05-06
    • 1970-01-01
    • 2021-05-12
    相关资源
    最近更新 更多