【问题标题】:Intellisense doesn't work for JavaScript in Visual Studio 2012Intellisense 不适用于 Visual Studio 2012 中的 JavaScript
【发布时间】:2012-07-14 08:24:29
【问题描述】:

我有一个干净的、开箱即用的 Visual Studio 2012 Web Developer Express 安装,但出于某种原因,对 JavaScript(jQuery、jQuery UI 和其他库)的支持已经消失。我相信它之前有效,然后“无缘无故”停止了。

我按预期浏览了网页,发现了四个差异。

  1. 我的注册表中没有键 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\JavaScriptLanguageService\ImplicitReferences。事实上,我什至没有 JavaScriptLanguageService 目录。

  2. 我检查了引用的文件 domWindows.js 确实是选项指向的位置。

  3. JavaScriptLanguageService 下的输出窗口是空的,在我开发和运行我的应用程序时没有输入任何内容。

  4. 我已经通过选项引用了我正在使用的 jQuery 文件,但它没有产生任何更改。

总之,我收到一条错误消息:

“intellisense 无法确定此表达式的准确完成列表,提供的列表包含文件中的所有标识符”

任何建议将不胜感激。

【问题讨论】:

    标签: jquery visual-studio intellisense visual-studio-2012 javascript-intellisense


    【解决方案1】:

    通过从 NuGet 控制台安装它来使用适用于 JQuery 的 NuGet IntelliSense 文档包:

    Install-Package jQuery-vsdoc

    安装包后转到:

    Tools>>Options>>Text Editor>>JavaScript>>Intellisense>>References

    并通过选择硬盘驱动器上安装的包位置添加对Implicit(Web) 组的引用。

    重新启动 Visual Studio,你会得到 jQuery intellisense 的工作。

    【讨论】:

      【解决方案2】:

      CraigTP致敬

      总结:

      1. 导航到 [工具] > [选项] > 文本编辑器 > JavaScript > IntelliSense > 参考选项

      2. 选择隐式(Web)

        你可以找到“~/Scripts/_references.js” (如果你想把它放在不同的地方,在这里改变它)

      3. 转到 ~/Scripts 并添加新项目“_references.js”

      4. 在“_references.js”中添加/// <reference path="path\jquery-1.7.1.js" />

        /// <reference path="~\root\path\jquery-1.7.1.js" />

      编码愉快:)

      编辑注释:

      记得把 jquery-1.7.1-vsdoc.js 和 jquery-1.7.1.js 放在同一个文件夹里

      进行上述更改后,如果仍然无法正常工作,请尝试重新启动 Visual Studio。

      【讨论】:

      • 这是一个简洁的解决方案(我还没有尝试过,但我可以欣赏它的简洁性,哈哈)。现在,在我升级到即将发布的更新版本的 jQ 之前,所有这些都将起作用。当然,编辑到 1.8 的路径没什么大不了的,但如果能自动完成它会更加整洁,不是吗?我想不出任何方法来实现这一点(除了开始为 MS 工作并自己在更新程序中编码到 VS 中 - 但不太可能发生)。
      • 如果你使用 nuget 来升级你的 jQ。 Nuget 会自动将其更改为 1.8。但是,1.8 没有 vsdoc.js。因此,您将失去智能感知支持。最后,您实际上希望 Nuget 不会自动升级。并感谢您将此标记为答案
      • 我相信 1.8 版的 vsdoc.js 很快就会推出。同时,也许有人可以将 1.7 的文档重命名为 1.8 并作弊。当然,这违背了自动更新的目的。顺便说一句,我从未使用过 NuGet。我错过了很多吗?
      • nuget.org 没那么多。才2年左右,哈哈。你真的需要尝试一下。 VS必备插件。
      • 哈哈,我想我会等到 1.8 的文档到来。当它不起作用时,我不想尝试这个必备插件。 Intellisense 对我来说比 NuGet 更必备。 :)
      【解决方案3】:

      我在 JavaScript -> Intellisense -> 参考 中包含了 jquery-xxx.intellisense.js。它工作了一次,但在我关闭 Visual Studio 并重新启动它后,智能感知不再工作。 但我不小心点击了菜单 Edit -> intellisense -> Refresh Remote References。它再次起作用了。 试试看!

      【讨论】:

      • 我已经尝试了此页面上的所有内容,但没有任何效果。使用 VS2013。
      【解决方案4】:

      将 jQuery 及其智能感知文件添加到活动/打开的项目/网站

      在 Visual Studio 2012 中,执行以下操作:

      打开菜单工具 -> 库包管理器 -> 管理解决方案的 Nuget 包。单击对话框最右侧的在线字段/选择器。在中间列表中找到jQuery,点击它,然后点击Install

      通过查看解决方案资源管理器面板,观察 jQuery 脚本文件现在已插入到您的项目中。您应该看到 jquery-1.x.x.js(这里的 x 是实际版本号的占位符。假设 jquery-1.9.0.js 是一个具体示例)。

      另外,请注意那里现在有一个 Jquery-1.9.0.intellisense.js 文件。整齐的艾? :-)

      但请记住,如果您在 Visual Studio 中创建一个新网站并选择 ASP:NET Web 表单站点(而不是空站点),则该 Web 表单站点中已经包含 jQuery 1.7.1。

      【讨论】:

        【解决方案5】:

        转到菜单工具 -> 选项 -> 文本编辑器 -> JavaScript -> Intellisense -> References 并在 Implicit Web 组中放置对您正在使用的 jQuery 版本的 Intellisense 文件的引用。

        在 _references.js 文件中放置对 intellisense 文件的“添加引用”,您可以将其添加到项目的 Scripts 文件夹中。

        /// <reference path="jquery-1.8.2.js"/>
        /// <reference path="jquery-1.8.2.min.js"/>
        /// <reference path="jquery-1.8.2.intellisense.js"/>
        

        虽然这只会为您所在的项目提供智能感知,但第一个将为任何打开的 JavaScript 文件提供智能感知,而不仅仅是您所在项目中的那些。

        要使用 intellisense 获取最新的 jQuery 文件,请使用 NuGet 包安装程序,默认情况下它将创建一个脚本文件夹并将 jQuery version.js、min.js 和 intellisense.js 文件放入... 从那里你可以将它们复制到大多数 Microsoft 引用所在的位置,通常是:

        install-package jquery 在包管理器控制台中。

        C:\Program Files (x86)\Microsoft Visual Studio 11.0\JavaScript\References

        【讨论】:

        • 如果 NuGet 出错并显示未找到默认项目的消息,这意味着 NuGet 不支持您打开的项目(例如 Node.js)。在这种情况下,您需要使用答案中已说明的其他方法。
        【解决方案6】:

        总结:

        1. 将要引用的.js 文件从Solution Explorer 拖到当前文件中。 (Visual Studio 将创建一个参考 sn-p。)

        【讨论】:

          【解决方案7】:

          最终对我有用的是重新排序 _references.js 中的列表。由于在项目中导入了一堆插件,我有将近 150 行,而 jQuery 接近底部。当我将它的引用移到顶部时,我的智能感知又开始工作了。

          它的样子:

          /// <autosync enabled="true" />
          /// <reference path="jquery-2.1.3.js" />
          /// <reference path="jquery-ui-1.11.2.js" />
          /// <reference path="modernizr-2.8.3.js" />
          ... more reference lines

          请注意,该引用是对 jquery-{version}.js 文件的引用。在名为 jquery-{version}.intelliense.js 的同一目录中,还有一个与 Nuget 包一起安装的文件,我假设是使用的文件。希望对您有所帮助。

          【讨论】:

            【解决方案8】:

            尝试将它们添加到您的隐式 JavaScript 引用中。它位于工具 -> 选项 -> 文本编辑器 -> JavaScript -> IntelliSense -> 参考。

            【讨论】:

            • 究竟应该有什么?我现在有以下参考资料: libhelp.js sitetypesWeb.js domWeb.js underscorefilter.js showPlainComments.js (以上所有在表单 c:\something 上的路径)除此之外我还有: ~/Scripts/_references.js (但是,我的项目目录中没有这样的文件 - 这可能是个问题吗?)
            • 现在,我有点不清楚要参考哪个文件来进行智能感知。我应该选择实际的 jQuery-1.7.2.js 本身(在我的项目目录中)还是应该参考 \Microsoft Visual Studio 11.0\JavaScript\References\jquery.intellisense.js?!可能是睡眠剥夺的说法,但我不记得将那个文件放入目录中......默认情况下是否存在?
            • 当我打开这个 jquery.intellisense.js 时,会发现一个简单的函数和一种签名。添加此文件后,IDE 本身没有任何变化……有点悲伤……
            猜你喜欢
            • 2016-07-14
            • 2012-10-23
            • 2013-04-05
            • 1970-01-01
            • 1970-01-01
            • 2022-01-21
            • 2017-09-09
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多