我正在编写一些节点命令行实用程序。它们都从以下行开始:
#!/usr/bin/env node
使用 Eclipse Juno 和 Nodeclipse Node.js 插件,这行代码会产生如下所示的错误:
好的,所以#
它不是 javascript 中的有效注释字符,但它是 Linux/UNIX 中的有效字符,作为文件第一行的shebang。但是我怎样才能设置 Eclipse 来忽略这个错误呢?这对我来说是个问题,因为如果您有错误,代码格式将不起作用。我必须删除该行。点击CTRL-SHIFT-F并添加回线。
我已经尝试了很多东西并进行了研究,但我找不到答案。
那里有一个重复的问题,eclipse javascript syntax error on hashbang line,但我的问题有更多信息。
编辑:
看起来在jshint 中添加了一些东西以允许在第一行使用 shebangs。也许我需要更新我的 node-eclipse,或者 node-eclipse 项目需要更新 jshint?
- 我的 jshint eclipse 集成是 0.9.6 版。
- 我的nodeclipse是0.4.0.20130519 ...
我升级到
- jshint eclipse 集成 0.9.9.20131029
- 节点日食 0.7.0.20131101
那没有帮助。
这是我在 Eclipse 中的 JSHint 版本:
编辑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 问题中的一些想法来禁用 JSDT 验证,如何从我的 Eclipse 项目中删除 javascript 验证?.
所以我进入我的项目属性并转到 JavaScript > Validation。我已将所有内容设置为“启用项目特定设置”并取消选中“错误/警告”、“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。