是否可以保留单行注释? (在 CoffeeScript 中编写greasemonkey/userscripts)

Posted

技术标签:

【中文标题】是否可以保留单行注释? (在 CoffeeScript 中编写greasemonkey/userscripts)【英文标题】:Is it possible to keep single-line comments? (Writing greasemonkey/userscripts in CoffeeScript) 【发布时间】: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,元数据块也会被包装。

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

【问题讨论】:

【参考方案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(以防其他人想知道)

以上是关于是否可以保留单行注释? (在 CoffeeScript 中编写greasemonkey/userscripts)的主要内容,如果未能解决你的问题,请参考以下文章

基础语法

pytho 的基本语法

html如何单行和多行注释 ?

MySql和Sql的单行注释和多行注释的区别

学习单行注释和多行注释

JPQL 是不是有单行和/或多行注释?