Pound Sign (#) As Comment Start In JavaScript?
comments, javascript, jshint, npm, uglifyjs2
Solution
It is not a JavaScript technique, but a *nix OS one. It is called `shebang`. Quoting from Wiki
Under Unix-like operating systems, when a script with a shebang is run as a program, the program loader parses the rest of the script's initial line as an interpreter directive; the specified interpreter program is run instead, passing to it as an argument the path that was initially used when attempting to run the scrip
So, the `cat.js` file can be executed in the shell, like an executable (if it has executable permission).
cat.js
instead of
node cat.js
Problem
Does the pound sign (#) start a comment in JavaScript? I have a website I am using with NPM and when I tried to minify the JavaScript with Grunt, Uglify threw the error: ``` Warning: Uglification failed. Unexpected character '#'. Line 1 in app/min-libs/node_modules/grunt-contrib-jshint/node_modules/jshint/nod e_modules/cli/examples/cat.js Use --force to continue. ``` The file name being referred to seems to be from another NPM module, meaning they know what they are doing. So when I went to app/min-libs/node_modules/grunt-contrib-jshint/node_modules/jshint/node_modules/cli/examples/cat.js, the offending line says: ``` #!/usr/bin/env node ``` Is this a comment or do the owners of this NPM module know some super-secret forbidden JavaScript technique?