6

井号 (#) 是否在 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 技术?

4

1 回答 1

6

它不是一种 JavaScript 技术,而是一种 *nix OS 技术。它被称为shebang。引用自维基

在类 Unix 操作系统下,当带有 shebang 的脚本作为程序运行时,程序加载器将脚本初始行的其余部分解析为解释器指令;而是运行指定的解释器程序,将尝试运行脚本时最初使用的路径作为参数传递给它

因此,该cat.js文件可以像可执行文件一样在 shell 中执行(如果它具有可执行权限)。

cat.js

代替

node cat.js
于 2014-01-10T05:42:33.670 回答