【问题标题】:Is it possible to keep single-line comments? (Writing greasemonkey/userscripts in CoffeeScript)是否可以保留单行注释? (在 CoffeeScript 中编写greasemonkey/userscripts)
【发布时间】:2011-09-23 22:30:50
【问题描述】:

我注意到在编译 CoffeeScript 时,没有保留任何单行 cmets。

这是有问题的,因为我正在尝试在 CoffeeScript 中编写油脂猴/用户脚本,并且它们依赖于 cmets 作为元数据块。

我尝试过使用反引号,但 cmets 周围的反引号似乎有问题:

`// ==UserScript==
// @version       1.0
// ==/UserScript==`

alert "hello world"

变成

// ==UserScript==
// @version       1.0
// ==/UserScript==;alert("hello world");

如果我在结束反引号之前添加一个额外的行,我会得到:

// ==UserScript==
// @version       1.0
// ==/UserScript==
;alert("hello world");

如果有自动包装的便利也很好。但我想如果没有-bare,元数据块也会被包装。

有没有更好的方法可以解决这个问题?

【问题讨论】:

    标签: javascript comments greasemonkey coffeescript userscripts


    【解决方案1】:

    我不使用 CoffeeScript,但从文档看来您可以使用:

    ###
    // ==UserScript==
    // @version       1.0
    // ==/UserScript==
    ###
    alert "hello world"
    


    这会产生:

    /*
    // ==UserScript==
    // @version       1.0
    // ==/UserScript==
    */
    alert("hello world");
    

    它可以完美地解析为 GM 脚本。元数据读取正确。

    【讨论】:

    • 几乎 工作.... 但是,如果您尝试使用 Sprockets,则使用这种方法会遇到错误(因为 //= <something> 已替换为<something> 的代码,所以你得到 /* //= require / --> / (code of something) */
    • 我怀疑他们使用 sprockets 进行用户脚本开发。
    • 要通过 Sprockets(Rails 资产管道)发出 require 消耗品,您可以使用 *=,如下所示:gist.github.com/joliss/9480786(以防其他人想知道)
    猜你喜欢
    • 2015-10-01
    • 2012-02-21
    • 2013-12-08
    • 1970-01-01
    • 2012-09-27
    • 2015-06-26
    • 2011-05-07
    • 2012-11-18
    • 2011-06-23
    相关资源
    最近更新 更多