.coffee.erb 转换为 .js 时链轮条是否注释

Does sprocket strip comment in .coffee.erb when converting to .js

似乎.coffee.erb中的#注释在最终编译的.js中被剥离了

例如:

https://github.com/marcom-unimelb/unimelb-design-system/blob/master/injection/header/header.coffee.erb

文件顶部附近有一条评论,如“# IE helper”。

https://github.com/marcom-unimelb/unimelb-design-system/blob/master/Rakefile

在上面的rakefile之后,我运行 bundle exec rake assets:compile VERSION=0.8,最后的javascript删除了散列标签注释。这是有道理的,因为 javascript 不支持 # 作为注释的开头。

有没有办法将 coffee 脚本中的 # 转换为 javascript 中的 // 或类似的东西?

来自fine manual

Sometimes you'd like to pass a block comment through to the generated JavaScript. For example, when you need to embed a licensing header at the top of a file. Block comments, which mirror the syntax for block strings, are preserved in the generated code.

因此,如果您想获得 C 风格的注释,例如:

/* Pancakes */

进入你的 JavaScript,你可以使用 CoffeeScript 块注释:

###
Pancakes
###

您也可以在 CoffeeScript 中使用 back-ticks for embedding JavaScript,但这往往会给您带来不需要的分号。例如,

`// Pancakes`

在您的 CoffeeScript 中变为:

// Pancakes;

在你的 JavaScript.

我倾向于块评论,因为 (a) 这就是它们的用途,并且 (b) 反引号有点丑陋。

顺便说一句,不是 Sprockets 在吃掉您的 CoffeeScript 注释,而是 CoffeeScript 本身。