【问题标题】:How do I fix or get rid of ESLint definition requirement in ASP.NET Razor app?如何修复或摆脱 ASP.NET Razor 应用程序中的 ESLint 定义要求?
【发布时间】:2019-02-14 06:37:15
【问题描述】:

我刚刚将 ASP.NET Core 2.0 Razor 应用升级到 2.1 以获得 EF Core 2.1 的新功能。这是我在 ASP.NET 中的第一个主要项目,来自 WinForms 和 PHP 背景。

我正在尝试通过并清除错误列表,但我遇到了 ESLint 错误,而且我以前从未使用过 ESLint,所以我不知道从哪里开始。 Google 在这个问题上也没有太大帮助。

以下是警告:

Warning react/jsx-sort-prop-types   (ESLint) Definition for rule 'react/jsx-sort-prop-types' was not found
Warning react/wrap-multilines   (ESLint) Definition for rule 'react/wrap-multilines' was not found
Warning react/require-extension (ESLint) Definition for rule 'react/require-extension' was not found

我什至不知道这些是什么意思,谷歌搜索它们并没有启发我,而且它们似乎没有指向特定的代码行。

这些警告到底想告诉我什么?

【问题讨论】:

    标签: javascript c# asp.net razor eslint


    【解决方案1】:

    如果您正在使用 ESLint,并且不想将代码添加到所有文件中,那么您可以在 ESLint 配置文件中禁用这三个规则。实际上有两种方法可以做到这一点。

    很长的路要找到配置文件,在c:\Users{username}.eslintrc 可以用文本编辑器打开,找到规则并将值设置为0(零),表示禁用.例如:

    "react/jsx-sort-prop-types": 0,
    

    较短的方法是转到工具/选项/文本编辑器/'JavaScript/TypeScript'/Linting/General。该页面上有一个按钮“重置全局 .eslintrc”。如果单击该按钮,您将获得一个更新版本的 .eslintrc 配置文件,其中根本没有这些规则,假设您拥有最新版本的 Visual Studio。

    无论您使用哪种方法,都需要重新启动 Visual Studio,然后错误就会消失。

    我认为问题的出现是因为您(和我)拥有此文件 (.eslintrc) 的旧版本,其规则不受支持或不再适用于 ESLint for Visual Studio 附带的 React 插件。我在没有安装 npm 模块并且绝对没有 React 的项目中遇到了这些错误。我认为升级到 Visual Studio 可能不会覆盖这个文件,以防你改变它。

    也可以将 .eslintrc 文件放入您的项目文件夹中,它将覆盖默认位置的设置。因此,对于您在多台机器上看到此问题的企业项目,您只需签入修复它的 .eslintrc 即可。但是,如果您在新机器上进行 Visual Studio 的全新安装,我认为您不会发现问题,因此我不确定是否有必要这样做。

    我使用 Visual Studio 2017 15.8.1 对此进行了测试。 ESLint 得到了相当大的upgrade in 15.8

    【讨论】:

    • 就是这样。感谢您的描述性回答!
    【解决方案2】:

    如果您想继续使用 EsLint(这很好),您可以在 .js 文件的开头禁用和重新启用 EsLint 以避免这些警告,并且仍然可以对文件的其余部分进行 EsLint 检查:

    /* eslint-disable */

    /* 启用 eslint */

    对于 jquery.js、bootstrap.js 等您无法控制的文件,您可以在文件开头使用此行完全禁用:

    /* eslint-disable */

    您只需要记住在更新后再次添加此行。

    【讨论】:

    • 您能解释(或发布链接)为什么会这样吗?如果这些是合法的错误,那么我想正确地纠正它们。但是即使它只是 ESLint 的一个已知错误,我正在构建一个企业系统,所以我有很多文件需要这种处理,除非我可以将它放在 _Layout.cshtml 或其他东西中。
    • 它只是在 .js 文件的开头停止 eslint,它们在检查文件的开头后恢复它。我从eslint.org/docs/user-guide/configuring 得到了那些。老实说,我不知道这些消息。这可能是一个错误,因为我不使用反应。是的,你是对的,这对于企业系统来说将是一个很大的麻烦。我为我的项目制作了它,我不得不更改 30-40 个 .js 文件,这花了一些时间,但我能够删除所有警告。
    • 这对我很有用。谢谢!快速提醒其他人,启用/禁用确实需要是文件中的前两行。如果您需要在文件中进一步修改规则,您可以在此之后包含其他禁用规则。
    【解决方案3】:

    如果你没有使用 ESLint,而你使用的是 Visual Studio,你可以去:

    工具 -> 选项 -> 文本编辑器 -> JavaScript/TypeScript -> Linting -> 常规。

    您可以从那里取消选中“启用 ESLint”复选框,然后检查该工具的全局配置文件。

    我正在使用 Visual Studio 2017 (15.8.4) 来查找此菜单。

    【讨论】:

    • 如果你应该在这个项目中使用 ESLint,看起来这是 React 插件的页面:github.com/yannickcr/eslint-plugin-react
    • 这是我目前解决此问题的方法。但我想对我的脚本进行验证,所以我正在寻找更持久的解决方案。
    • React 插件的文档有帮助吗?我假设您正在使用它,但我自己对此并不了解。
    • 不...我没有明确使用 React。也许它像 Bootstrap 一样内置在项目中?
    • 我不这么认为。但它可能与您的依赖项之一一起出现。如果这不是你工作的重点,我不会担心。如果/何时想这样做,您可以随时返回并了解这些特定规则/插件。
    猜你喜欢
    • 2022-01-19
    • 2020-12-19
    • 2019-08-17
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多