gpt4 book ai didi

eclipse - 如何忽略 Eclipse 中的 Node shebang 错误?

转载 作者:IT老高 更新时间:2023-10-28 22:05:46 25 4
gpt4 key购买 nike

我正在编写一些 Node 命令行实用程序。它们都以该行开头:

#!/usr/bin/env node

使用 Eclipse Juno 和 Nodeclipse Node.js 插件,这行代码会产生如下所示的错误:

Node shebang eclipse error

好的,所以 # 在 javascript 中不是有效的注释字符,但在 Linux/UNIX 中作为文件第一行的 shebang 是有效的字符.但是我怎样才能设置 Eclipse 来忽略这个错误呢?这对我来说是个问题,因为如果您有错误,代码格式将不起作用。我必须删除该行。点击 CTRL-SHIFT-F 并添加该行。

我尝试了很多东西并进行了研究,但我找不到答案。

那里有一个重复的问题,eclipse javascript syntax error on hashbang line ,但我的问题有更多信息。

编辑:

似乎在 jshint to allow shebangs in the first line 中添加了一些内容.也许我需要更新我的 node-eclipse,或者 node-eclipse 项目需要更新 jshint?

  • 我的 jshint eclipse 集成是 0.9.6 版。
  • 我的 nodeclipse 是 0.4.0.20130519...

我升级到了

  • jshint eclipse 集成 0.9.9.20131029
  • nodeclipse 0.7.0.20131101

这没有帮助。

这是我在 Eclipse 中的 JSHint 版本:

enter image description here

编辑 2:

感谢 VonC 的回答。但我认为这表明我在文件中没有 BOM。还有其他想法吗?

$ od -N 20 -t x1 hello.js
0000000 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 6e
0000020 6f 64 65 0a
0000024

编辑 3:

关于下面 Paul Verest 的回答,我尝试关闭 JSDT 验证,但我似乎无法做到。我取消选中“启用 JavaScript 语义验证”(在 Eclipse 中,请参阅 Window > Preferences > JavaScript > Validator > Errors/Warnings),但问题仍然存在。

我现在正在卸载 Eclipse Web Developer Tools 3.4.2。这似乎没有帮助,现在我的 CSS 和 HTML 编辑器不见了。现在我尝试通过遵循这个 SO 问题 How do I remove javascript validation from my eclipse project? 中的一些想法来禁用 JSDT 验证。 .

所以我进入我的项目属性并转到 JavaScript > 验证。我已将所有内容设置为“启用项目特定设置”并取消选中“错误/警告”、“JSDOC”等。即便如此,我认为验证仍在运行,因为问题仍然存在!我的“Builders”属性只列出了启用的“JSHint Problem Checker”。 (我在一个带有 hello.js 的新测试项目上做这一切)。

编辑 4,答案

这并不容易,但我最终破解了 Eclipse 中的 .project 文件。我有这个:

<natures>
<nature>org.nodeclipse.ui.NodeNature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>

我删除了 jsdt 性质,现在 shebang 行上的错误消失了!我在我的测试项目和我的真实项目中做到了这一点。有效!这实际上非常有用,因为我可以格式化文件并且我现在实际上正在运行 jshint。

最佳答案

在 Eclipse 中有两个 JavaScript 验证选项:

  • JSDT
  • JSHint(从 Nodeclipse 0.7 开始默认)

由于每个项目都存储配置,请从使用 0.7 创建的项目中复制 .* 设置文件或手动重新配置(只需将 .* 文件与新创建的项目进行比较)。然后把 .jshintrc 文件像 https://github.com/Nodeclipse/nodeclipse-1/blob/master/org.nodeclipse.ui/templates/.jshintrc

尝试检查JSHint options ,如果可能的话。

注意,使用 JSHint 时,~~这个问题变成了一般 JSHint 问题(与 Eclipse 或 Nodeclipse 无关)。~~

更新:

.project从 0.7 开始的内容:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>ProjectName</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.eclipsesource.jshint.ui.builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.nodeclipse.ui.NodeNature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>
</projectDescription>

@Jess 发现这是 JSDT 显示的错误,而不是 JSHInt,所以删除 <nature>org.eclipse.wst.jsdt.core.jsNature</nature>将阻止 JSDT 显示它(即使 JavaScript 语义验证自 0.7 以来已关闭)

更新 3:

<nature>org.eclipse.wst.jsdt.core.jsNature</nature> 的缺点删除将是代码辅助和单击定义将不起作用(它实际上在定义 JSDocs 的极少数情况下起作用,例如 http://www.nodeclipse.org/nodejs/javascript/sources/books/2013/10/22/JSDT-require-JSDoc.html 或在 1 个 .js 文件中)

JSDoc support

甚至点击定义 click-through to definition

关于eclipse - 如何忽略 Eclipse 中的 Node shebang 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18960201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com