jQuery UI打破了Visual Studio 2015 Intellisense

时间:2016-10-15 01:37:19

标签: javascript jquery visual-studio-2015

我发现JavaScript intellisense有一个令人沮丧的问题,如果我在我的=Text("<source cell>", "mmm yyyy") 文件中包含jQuery UI,我将丢失所有JavaScript intellisense。除了从_references.js删除jQuery UI之外,有没有人知道是否有办法解决这个问题?

更新

  • 我知道_references.js文件中的更多文件会导致速度变慢,这是有道理的。但是,我的工作项目包括更多文件(大约600个),没有类型问题,我的项目有20个。所以这不是“太多文件”的问题。
  • 我将我的项目从Git拉到另一台计算机(因此单独安装VS15)并试图包含jQuery UI文件,这仍然导致我的项目中智能感知的丢失。
    • 这不是安装问题,因为其他工作项目包括jQuery UI而且没有智能感知问题
  • 我确实意识到我可以手动管理_references.js来完成任务,但我想完全修复它,因为我讨厌需要两次添加信息(创建JS文件然后更新_references.js )。

有了这些新信息,我认为它必须是我的项目设置中的一些更深层次的问题导致问题,而不是基于安装的问题或jQuery UI特定问题。有没有人对.sln或.csproj文件中的哪些设置可能导致JS Intellisense问题有任何想法?

6 个答案:

答案 0 :(得分:5)

对于那些遇到此问题的人,我发现使用jQuery 3.x导致instellisense在_references.js中包含jQuery UI时中断。我的解决方案是使用NuGet更改回2.2.4版本,一切都恢复正常。

答案 1 :(得分:1)

我遇到了同样的问题。我尝试了很多东西,但我唯一能够持续工作的是禁用自动同步功能并删除jquery UI引用。 Intellisense似乎也越来越慢,越来越多的库,几乎到了看起来它不起作用的程度。 我终于到了这一点,我只包含自己的脚本和jquery,以提供有关语法的有用提醒。 不幸的是,这意味着我必须手动保持_references.js文件是最新的,但它肯定比不工作更好。

您还可以在_references文件中限制全局引用,并将您想要智能感知的脚本文件拖到每个视图中,如果您像我一样,每个视图都有一个脚本文件。这样,您就无法获得甚至无法呈现给视图的脚本的智能感知。

答案 2 :(得分:0)

不确定这是否会对您有所帮助,但您是否已将其添加到.js文件的顶部?

/// <reference path="/scripts/jquery-3.1.1.js" />

如果您使用NuGet为您的解决方案安装jquery,那就是我们所做的道路。如果您在其他地方找到了您的jquery文件和intellisense文件,请使用该路径(我相信它们需要位于同一个文件夹中)。

答案 3 :(得分:0)

我找到了更好的解决方案!简单地将 jquery-ui-1.12.1.js (或类似)重命名为 _jquery-ui-1.12.1.js 。这将导致它出现在 _references.js 文件中导致智能感知不起作用的冲突jQuery 3引用之前的顶部。请务必同时更新任何脚本标记或 BundleConfig.cs 引用,以包含新的下划线字符前缀!

答案 4 :(得分:0)

<强>解决方案:

_references.js 文件中:

  1. 将JQuery-UI参考移至主JQuery参考
  2. 禁用自动同步
  3. 如:

    /// <autosync enabled="false" />
    /// <reference path="jquery-ui-1.12.1.js" />
    /// <reference path="jquery-3.3.1.js" />
    

    <强>缺点:

    • 每次更新JavaScript引用时,您都必须重复步骤1(右键单击 _references.js 以更新Visual Studio中的引用)。

答案 5 :(得分:0)

enter image description here

总是先安装 jQuery 任何你喜欢的版本,然后安装 JQuery-ui。如果你想 要升级或降级 JQuery 版本,每次更改时都必须卸载并重新安装 JQuery-ui。首先是 Jquery-3.6.0.js,然后是 Jquery-ui-1.12.1.js,每次在 jquery 中进行更改时都必须重新安装 jquery-ui。