【问题标题】:How do you use JsHint ".jshintrc" file with Visual Studio 2013 Web Essentials extension?如何使用带有 Visual Studio 2013 Web Essentials 扩展的 JsHint ".jshintrc" 文件?
【发布时间】:2013-12-30 01:08:14
【问题描述】:

我已将“Web Essentials”扩展安装到 Visual Studio 2013 中。我现在收到 JSHint 警告出现在“消息”部分下的“错误列表”窗口中。但是,它抱怨一些它认为未定义的全局变量。

根据我的阅读,您可以使用 JSHint 的 .jshintrc 文件来列出全局变量,这样它就不会抱怨它们了。我想将其设置如下。 (这样它就不会再抱怨“ko”了……这是一个 KnockoutJs 全局变量。)

"globals": {
    "$": false,
    "jQuery": false,
    "ko": false
 }

您应该如何以及在何处在您的 VS 项目中创建这个 .jshintrc 文件?

我尝试在项目的根目录中添加文件,将其命名为“.jshintrc”,但 Visual Studio 抱怨说:

"File and folder names cannot contain a leading period."

我似乎找不到任何有关如何将此文件添加到您的 Visual Studio 项目中以便 Web Essentials 扩展能够获取它的文档。

有什么想法吗?


更新

Hex 有正确的答案。我必须打开命令提示符来重命名文件,因为 Windows 资源管理器也不允许我命名以句点开头的文件。在那之后,我还按照 Hex 的建议将整个东西用花括号括起来。这是我的 .jshintrc 文件的内容......我把它放在我的 WebApp 的根文件夹中......与 web.config 等其他文件一起。

{
    "globals": {
        "$": false,
        "jQuery": false,
        "ko": false
      }
}

我不再收到关于“ko”对象的 1000 万条不必要的警告。 :) 谢谢十六进制!

【问题讨论】:

  • 我自己一直在到处寻找答案。我发现 JSHint 使用文件名中需要前导句点的文件有点迟钝。您甚至无法在 Windows 资源管理器中创建此文件。
  • 这可能是一个很长的镜头,但我有 Visual Studio 2012,它拒绝识别 jshintrc 文件。我已经按照这里推荐的方式编写了它,但它仍然抱怨全局变量。

标签: .net visual-studio visual-studio-2013 jshint web-essentials


【解决方案1】:

项目根没问题。我觉得 JsHint 一直在搜索文件到文件系统的顶部。

您可以使用命令行创建文件。 只需使用您喜欢的工具创建文件,然后从 cmd 重命名它,例如“ren jshintrc .jshintrc”

我还发现我需要重新启动 VS 才能加载 jshintrc 文件中的更改。

如果仍然无法正常工作,请尝试将整个文件放入 {}。我不确定它是否需要,但我在其他地方看到它。

【讨论】:

  • 谢谢。很高兴现在出现有用的 JsHint 消息!你是对的,我确实必须在整个事情上加上大括号。
【解决方案2】:

创建/编辑 JSHint 全局设置(以及 TSLint、CoffeLint 和 JSCS 设置)的最简单方法是单击 Web Essentials 菜单,然后选择适当的选项。

这样,Web Essentials 会为您创建文件(如果该文件尚不存在)。

【讨论】:

  • 哇,我从来没有注意到这个菜单在顶部。谢谢!!顺便说一句,当我单击“编辑全局 JSHint 设置”菜单项时,您显示它会打开一个文件,但是当我在解决方案资源管理器中单击“与活动文档同步”时……它并不指示文件位置。我尝试编辑此文件,但它没有导致我的项目在源代码管理中的签出或未决更改。 (这个版本的 .jshintrc 似乎是所有 VS 解决方案中的同一个文件。)所以现在我继续使用我在 webapp 根目录创建的文件,因为它与我的项目一起传播并在 TFS 中进行跟踪。
  • 文件存储在 C:\Users\%username% 中,我个人不喜欢,但是是的,你是对的,这些是“全局”Web Essentials 设置,所以有意义如果您希望排除特定类型的文件(如 jquery*.js),您希望它在所有解决方案中都排除在外。因此,考虑它们的方式是它们“对您来说是全局的”,而不是与任何单独的解决方案/项目相关联。如果您只需要一个项目独有的设置,那么您将按照您描述的方式添加一个文件。
【解决方案3】:

我通过 Visual Studio 扩展添加了 jshint。在菜单选项下有一个名为 JavaScript Linter Options... 的菜单项,它会弹出一个对话框,允许您选择许多不同的选项。要删除 '$' is not defined 错误,我检查了 Assume jQuery 选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 2015-02-21
    • 1970-01-01
    相关资源
    最近更新 更多