井号(#)是否在JavaScript中发表评论?我有一个我正在使用NPM的网站,当我试图用Grunt缩小JavaScript时,Uglify抛出错误:
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.
所引用的文件名似乎来自另一个NPM模块,这意味着他们知道自己在做什么。所以当我去app / min-libs / node_modules / grunt-contrib-jshint / node_modules / jshint / node_modules / cli / examples / cat.js时,违规行说:
#!/usr/bin/env node
这是一个评论还是这个NPM模块的所有者知道一些超级秘密的禁止JavaScript技术?
答案 0 :(得分:4)
它不是JavaScript技术,而是* nix OS。它被称为shebang
。引自维基
在类Unix操作系统下,运行带有shebang的脚本时 作为程序,程序加载程序解析脚本的其余部分 初始行作为翻译指令;指定的解释器 而是运行程序,将其作为参数传递给它 最初在尝试运行脚本时使用
因此,cat.js
文件可以在shell中执行,就像可执行文件一样(如果它具有可执行权限)。
cat.js
而不是
node cat.js