Jes*_*ess 22 eclipse jsdt node.js jshint nodeclipse
我正在编写一些节点命令行实用程序.他们都从这条线开始:
#!/usr/bin/env node
Run Code Online (Sandbox Code Playgroud)
使用Eclipse Juno和Nodeclipse Node.js插件,这行代码会产生错误,如下所示:

好的,所以#不是javascript中的有效注释字符,但它是Linux/UNIX中的有效字符,作为文件中第一行的shebang.但是如何设置Eclipse以忽略此错误?这对我来说是一个问题,因为如果您有错误,代码格式化将不起作用.我必须删除该行.点击CTRL-SHIFT-F并添加回来.
我尝试了很多东西并研究过,但我找不到答案.
有一个重复的问题,在hashbang线上eclipse javascript语法错误,但我的问题有更多的信息.
看起来有一些东西添加到jshint以允许第一行中的shebangs.也许我需要更新我的node-eclipse,或者node-eclipse项目可能需要更新jshint?
我升级到了
这没有用.
这是我在eclipse中的JSHint版本:

感谢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
Run Code Online (Sandbox Code Playgroud)
关于Paul Verest在下面的回答,我试图关闭JSDT验证,但我似乎无法做到这一点.我取消选中"启用JavaScript语义验证"(在Eclipse中,请参阅"窗口">"首选项">"JavaScript">"验证程序">"错误/警告"),但问题仍然存在.
我现在正在卸载Eclipse Web Developer Tools 3.4.2.这似乎没有帮助,现在我的CSS和HTML编辑器已经消失了.现在我已经尝试通过遵循这个SO问题中的一些想法来禁用JSDT验证,如何从我的eclipse项目中删除javascript验证?.
所以我进入了我的项目属性并转到了JavaScript> Validation.我已将所有内容设置为"启用项目特定设置"并取消选中"错误/警告","JSDOC"等.即便如此,我认为验证仍在运行,因为问题仍然存在!我的"Builders"属性仅列出已启用的"JSHint Problem Checker".(我在一个带有hello.js的新测试项目中完成所有这些工作).
这并不容易,但我最终在Eclipse中破解了.project文件.我有这个:
<natures>
<nature>org.nodeclipse.ui.NodeNature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>
Run Code Online (Sandbox Code Playgroud)
我删除了jsdt性质,现在shebang线上的错误是GONE!我在我的测试项目和我的真实项目中做到了这一点.有效!这实际上非常有用,因为我可以格式化文件,而我现在实际上正在运行jshint.
Eclipse中有2个JavaScript验证选项:
由于每个项目存储了配置,因此从使用0.7创建的项目中复制.*设置文件或手动重新配置它(只需将.*文件与新创建的项目进行比较).然后把.jshintrc文件放到 https://github.com/Nodeclipse/nodeclipse-1/blob/master/org.nodeclipse.ui/templates/.jshintrc
如果可能的话,尝试检查JSHint选项.
注意,使用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>
Run Code Online (Sandbox Code Playgroud)
正如@Jess发现这是JSDT显示的错误,而不是JSHInt,因此删除<nature>org.eclipse.wst.jsdt.core.jsNature</nature>将阻止JSDT显示它(即使自0.7后JavaScript语义验证已经关闭)
更新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文件内)
甚至点击进行定义

| 归档时间: |
|
| 查看次数: |
2755 次 |
| 最近记录: |