PhpStorm未解决的函数或方法$()。

88

我有以下问题:phpstorm无法识别jquery方法,我经常看到以下的提示:

enter image description here

未解析的函数或方法$()

这个问题一直困扰着我,但最终我尝试通过 文件->设置->JavaScript->库 并将jquery添加为全局 / 项目来解决。

我的库设置如下所示:enter image description here

但是没有改变任何事情。我仍然看到这些烦人的提示。有人知道如何摆脱它们吗?


2
请展示您的jQuery库设置截图。 - LazyOne
好的,所以您正在使用jQuery v1.11。在使用1.11.0时我确实看到了相同的行为,但是1.10.2可以正常工作。我认为这与“AMD-fy jQuery source”的相关性很大--http://bugs.jquery.com/ticket/14113--看起来IDE在解析这种风格时存在一些问题。如果您愿意(并且能够),请回退到v1.10.2--那里的更改并不是如此重大/关键。 - LazyOne
1
实际票据:http://youtrack.jetbrains.com/issue/WEB-10908 - LazyOne
5个回答

152

有一个非常愚蠢的解决方法,

从IDE内部下载库(在本例中为jQuery)。

  • 打开设置(Linux上为Ctrl + Alt + S)
  • 导航至语言和框架 -> Javascript ->
  • 点击下载并选择jQuery

希望错误会消失

编辑: 通过Fiddler运行IDE后,我意识到这只是因为IDE下载的版本才解决了问题。

因此,正确的解决方法是将旧的、非-AMD版本的jQuery作为全局范围库添加,并将最新版本作为项目范围库添加。

最新的非-AMD版本包括:

1.10.2用于1.x系列。以及,2.0.0用于2.x系列。


6
这个解决方法太愚蠢了,几乎让人感觉像是PhpStorm的开发人员希望我们真的使用这种方式... - Félix Adriyel Gagnon-Grenier
从PhpStorm 8开始,可以在“设置”->“语言和框架”->“JavaScript”->“库”中找到此选项。 - simontemplar
是的,他们说pStorm 8.0.2应该已经解决了这个问题。 - trve.fahad
1
请注意,可能需要重新启动应用程序。 - Will

13

我在使用1.11.2版本时遇到了相同的问题,解决方法很简单,只需将未压缩的版本添加到我的js文件夹中即可。


2
应该就是这样。我在压缩的 jQuery min 文件旁边添加了未压缩的 jQuery 版本。紧接着,我将未压缩的版本添加到 .gitignore 文件中,这样我的生产环境总是使用 min 版本。 - ConfusedDeer

6

将未压缩版本的jQuery复制到您的项目文件夹中。 甚至无需将其导入项目,只需将其复制到javascript文件夹中即可。


你仍然需要修改 <script src="../../js/jquery-ui.min.js"></script> 语句以使其被识别。 - user9329083
Webstorm的依赖管理不依赖于修改js文件(这既有好处也有坏处)。 我认为Phpstorm也会是一样的... - Mostafa Mohammadzadeh

3
jQuery版本号为v1.11.0的行为和前一个版本v1.10.2相同,但是在IDE中之前的版本可以正常工作(没有警告)。我认为这与"AMD-fy jQuery source" ticket (http://bugs.jquery.com/ticket/14113)有关--看起来IDE在解析这种样式时存在问题。如果您希望回退到jQuery v1.10.2(半年前的版本,因此稳定且仍然可用),请这样做。希望IDE能够在下一个版本中正确解析这个新的jQuery样式。实际的问题:http://youtrack.jetbrains.com/issue/WEB-10908

这不是一个解决方案。从IDE导入jQuery对我有用。 - David Jashi

1

如果在PhpStorm中同时导入1.11.0和1.10.2,这个问题就会被解决。

您不需要回滚您的项目。


嗯...我试过了(虽然我添加的是1.10.4 - 找不到1.10.2),但它仍然给我报错。有什么建议吗? - Lee Fuller
任何1.10.2版本之后的内容都无法使用,那是他们发布的最后一个非AMD版本。 - trve.fahad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接