I am writing some node command line utilities. They all start with the line:
#!/usr/bin/env node
With Eclipse Juno and the Nodeclipse Node
Update:
The issue entered in nodeclipse points out to JSHint issue 66.
As Paul Verest remarks in his answer (upvoted), this could be as simple as making sure JSHint check the code.
Since commit 63da9, JSHint knows how to ignore that shebang directive.
// If the first line is a shebang (#!), remove it and move on.
// Shebangs are used by Node scripts.
if (lines[0] && lines[0].substr(0, 2) == '#!')
lines.shift();
Original answer
Are you sure '#
' is not a valid character (yet used in this question)?
Double-check the encoding of your node.js
file, because if it is UTF-8 with BOM, then the javascript couldn't be launched properly.
See "What's different between utf-8 and utf-8 without BOM?", and the wikipedia article on shebang (section "Magic number")
The shebang characters are represented by the same two bytes in extended ASCII encodings, including UTF-8, which is commonly used for scripts and other text files on current Unix-like systems.
However, UTF-8 files may begin with the optional byte order mark (BOM); if the "exec
" function specifically detects the bytes0x23 0x21
, then the presence of the BOM (0xEF 0xBB 0xBF
) before the shebang will prevent the script interpreter from being executed.
Some authorities recommend against using the byte order mark in POSIX (Unix-like) scripts, for this reason and for wider interoperability and philosophical concerns.