为什么application.js
中的行似乎被注释掉了?
我看到了带有伪指令的教程,这些伪指令将代码行添加到application.js
文件中,但是添加的行似乎已被注释掉。
基本示例here
这是我的文件的样子(我添加的行似乎是注释):
我怀疑=
可能会否定评论,但是在我所知道的每种语言中,一旦声明了评论,无论该行上有什么其他内容,该行都将被视为评论 >
答案 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]
这实际上是常见的模式