批注和application.js中带有等号的批注之间的区别

时间:2019-02-21 13:45:32

标签: javascript ruby-on-rails

为什么application.js中的行似乎被注释掉了?

我看到了带有伪指令的教程,这些伪指令将代码行添加到application.js文件中,但是添加的行似乎已被注释掉。

基本示例here

这是我的文件的样子(我添加的行似乎是注释):

enter image description here

我怀疑=可能会否定评论,但是在我所知道的每种语言中,一旦声明了评论,无论该行上有什么其他内容,该行都将被视为评论 >

3 个答案:

答案 0 :(得分:4)

sprockets使用了这种评论//= require xx 称为最终用户资产生成。

这与语言无关,但更多地是该工具的功能。

它称为注释

这种模式之所以流行,是因为它不会以任何方式影响实际代码。

最终,这只是收集所有文件进行压缩并将其提供给用户,而实际上并未更改与代码相关的任何内容。

答案 1 :(得分:2)

来自sprockets

  

指令是资产文件中的特殊注释,也是主要的处理方式   与处理器交互。什么样的互动?您可以使用   这些指令告诉Sprockets加载其他文件,或指定   对其他资产的依赖。

     

例如,假设您拥有自定义的JavaScript   书面。您将此JavaScript放在了一个名为beta.js的文件中。的   javascript大量使用了jQuery,因此您需要在加载之前   您的代码执行。您可以将require指令添加到   beta.js

//= require jquery

$().ready({
  // my custom code here
})
     

指令处理器可以理解三种格式的注释块:

/* Multi-line comment blocks (CSS, SCSS, JavaScript)
 *= require foo
 */
     

// Single-line comment blocks (SCSS, JavaScript)
//= require foo
     

# Single-line comment blocks (CoffeeScript)
#= require foo
     
    

注意:仅当指令位于任何应用程序代码之前时才对其进行处理。一旦您的行不包含注释     或空格,则Sprockets将停止寻找指令。如果你     在文档的“标题”之外使用指令,它将不会     不会有任何错误。

  
     

以下是可用指令的列表:

     
      
  • require-将文件内容添加到当前文件
  •   
  • require_self-更改当前内容与当前内容的连接顺序
  •   
  • require_directory-将文件夹中每个文件的内容添加到当前文件
  •   
  • require_tree-在当前路径中的所有目录中添加所有文件的内容
  •   
  • link-编译目标文件并使之公开可用,而无需向当前文件添加内容
  •   
  • link_directory-编译目标目录并公开可用,而无需在当前目录中添加内容
  •   
  • link_tree-编译目标树并在不向当前目录添加内容的情况下将其公开发布
  •   
  • depend_on-如果目标已更改,请重新编译当前文件
  •   
  • stub-忽略目标文件
  •   

答案 2 :(得分:1)

并非总是如此,例如在PHP中,您具有注释注释:https://php-annotations.readthedocs.io/en/latest/UsingAnnotations.html

在JS中,使用流时,您要在文件顶部添加注释,如下所示:

// @flow

[file content]

这实际上是常见的模式