【问题标题】:Pound Sign (#) As Comment Start In JavaScript?英镑符号 (#) 作为注释在 JavaScript 中开始?
【发布时间】:2014-01-28 23:45:41
【问题描述】:

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

【问题讨论】:

    标签: javascript comments npm jshint uglifyjs2


    【解决方案1】:

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

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

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

    cat.js
    

    而不是

    node cat.js
    

    【讨论】:

    • 哇,你每天都能学到新东西。我想我必须找到一种方法让 Uglify 忽略包含这个 shebang 的文件。谢谢。
    • 如果我可以问,@thefourtheye,您的个人资料名称来自哪里?我知道第三只眼是能看到想像什么的,那第四只眼是什么?
    • @trysis 不客气 :) 根据印度教神话lord Shiva has three eyes。由于他有第三只眼的名字,我取了第四只眼:P
    • @trysis 谢谢 :) 如果对您有帮助,请考虑接受这个答案 :)
    猜你喜欢
    • 1970-01-01
    • 2022-08-23
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    相关资源
    最近更新 更多