Webstorm无法识别JavaScript文件

82

观看

Webstorm无法识别我的一个.js文件,因此我失去了语法高亮和添加断点的功能。 我查看了workspace.xml文件,并且发现问题文件与其他正常工作的.js文件具有相似的设置。

如果我更改文件名,它可以正常工作。因此,Webstorm在某种程度上错误地解释了具有该名称的文件类型。我还可以在哪里编辑项目?

上下文菜单


可能存在损坏的索引 - 请尝试运行“文件->无效缓存...” - anstarovoyt
我尝试了无效化+重启,但不幸的是没有任何改变。 - Ian Warburton
您的上下文菜单中是否有“标记为JavaScript”操作? - anstarovoyt
我已经将上下文添加到问题中了。它很大! - Ian Warburton
到目前为止,所有的答案都对我没用。我将文件重命名后,它被识别为JS。 - Max
10个回答

195

所以我看到这个问题可能有以下三个原因:

  1. 文件被标记为"纯文本"

  2. 有一个适用于"文本文件"文件类型的模式与此文件匹配(或反过来:文件类型"JavaScript"排除了该文件名)。见下图

enter image description here

  1. 有一个自定义插件覆盖了文件的默认行为,处理具有这个名称的文件(不太可能)

更新:几年后,我发现了另一个造成这种行为的原因,并且很可能是问题的主要源泉。当您创建一个没有任何扩展名的文件时,“注册新文件类型关联”会出现。你可能会意外地指定一种新的文件类型,适用于某些文件名。可以通过(2)来解决,但这就是为什么添加了该模式的原因。

Register New File Type Association

注意:解决方案适用于所有基于IDEA的IDE:IntelliJ IDEA、WebStorm、RubyMine、PyCharm、PhpStorm。


3
我认为1)最有可能是因为我一开始创建它时把它当成了js文件搞错了。我该如何正确标记它? - Ian Warburton
5
确定是第二种情况,因为第一种情况会有稍微不同的文件图标。特别考虑到你最新的评论:“我一开始把它创建为 js 文件时搞砸了”。 - LazyOne
7
这个操作很简单。如果你新建一个通用文件时,忘记在对话框中添加扩展名,它将切换到定义模式。接着你只需输入扩展名,就可以定义一种新的文本文件类型了! - Ian Warburton
1
请注意,这也适用于IntelliJ IDEA(请参见https://youtrack.jetbrains.com/issue/WEB-19160) - Roland Ewald
2
这对我来说是答案。我创建了一个没有扩展名的新文件,并在下一个对话框中提示文件类型时添加了一个扩展名,而不是从列表中选择一个。此时,IntelliJ“贴心地”将我的新文件添加到文本文件列表中 :/ - worc
显示剩余3条评论

19

文件 -> 设置 -> 编辑器 -> 文件类型 -> 文本文件 -> 在此处检查 "ContentRepository.js" 模式并将其删除。


13
如果文件被标记为“纯文本”,则可以按照以下步骤进行修复:
  1. 右键单击该文件。

  2. 在菜单选项中选择"标记为Javascript",该选项位于"删除"的下方。

  3. 点击该选项。现在,WebStorm将识别您的文件为javascript。

由于WebStorm在右键单击后不允许截屏,因此无法在此处添加。

6
我的问题与“根据上下文自动检测文件类型”有关。

enter image description here


在Ubuntu上,该标签称为“根据内容自动检测的文件类型”。 - FrankyHollywood

3

以下操作对我很有帮助:
1) 打开偏好设置
2) 进入编辑器选项
3) 找到文件类型
4) 搜索javascript
5) 添加*.js作为注册模式


1
你还可以尝试使用“模板数据语言”(在文件>设置中),这将强制对特定文件或文件夹进行特定语言的语法突出显示。请参见下面的屏幕截图enter image description here
对于一段代码块,您还可以使用“语言注入”。只需突出显示代码块,等待小灯泡出现,然后选择底部选项,再选择需要的语言(也附有屏幕截图)。

enter image description here


1

enter image description here enter image description here

2022年更新!

右键点击文件,选择JavaScript。


0

如果有帮助的话(天啊,这真吓人)。

由于某种原因,IntelliJ在我的项目中无法识别任何.js文件(即使在删除.idea后(rm -rf .idea))。

我转到了Webstorm(在我的情况下是RubyMine):Webstorm > Preferences ... > Editor > File Types,然后转到已识别的文件类型,选择Javascript(但您缺少的文件类型将做),然后添加回一个注册模式条目*.js

当然,按应用,然后按确定

哇,吓人的东西。但解决了我的问题,希望对其他人也有所帮助。


0

我一直在尝试将 .js 添加为已识别的文件类型,但不知何故,.js 被添加到了 忽略的文件和文件夹 中。

我只需从 忽略的文件和文件夹 中移除 .js,就可以正常工作了。

  1. 首选项
  2. 编辑器
  3. 文件类型
  4. 忽略的文件和文件夹
  5. 移除 *.js

WebStorm -- Ignored Files and Folders


0
我遇到了一个奇怪的情况,其他答案都对我没用,但后来我想起了我是如何创建这个文件的。
我曾试图聪明地使用了以下命令。
mkdir __tests__ && touch "${_}/index.test.js

shell提示我完成双引号,这没问题。我能够在IntelliJ Idea中加载文件,但是我对为什么它没有得到JavaScript语法高亮感到非常困惑。我尝试更改文件关联,但没有成功。
然后我想我只需删除文件并尝试重新创建它。当我输入rm命令时,我按下tab键来自动完成文件路径,看到了我的问题:
rm __tests__/index.test.js$'\n'

因为我在创建文件的命令中在输入双引号之前按下了回车键,所以文件被命名为index.test.js\n。IntelliJ Idea很高兴地打开了这个文件,并将其显示为index.test.js,但是扩展名是.js\n,而不仅仅是.js,因此它无法将该文件识别为.js文件。
重命名可能会起作用,但我只是将其删除并重新创建,这次末尾没有\n

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