Разница между комментариями и комментариями со знаком равенства в application.js - PullRequest
0 голосов
/ 21 февраля 2019

Почему строки внутри application.js закомментированы?

Я вижу учебники с директивами для добавления строк кода в файл application.js, но добавленные строки, похоже, закомментированы.

Базовый пример здесь

Вот как выглядит мой файл (добавленные строки выглядят как комментарии):

enter image description here

Я подозреваю, что = может отрицать комментарий, но на каждом языке, который я знаю, после объявления комментария эта строка считается комментарием нетчто бы там ни было

Ответы [ 3 ]

0 голосов
/ 21 февраля 2019

звездочки использует этот вид комментария //= require xx для генерации активов конечного пользователя, как они его называют.

Это не связано с языком, но больше относится к тому, что этот инструмент делает.

Это называется аннотацией

Причина, по которой этот шаблон довольно популярен, заключается в том, что он никак не влияет на реальный код.

В конце дня, это только для того, чтобы собрать все файлы, сжать их и передать их пользователю, фактически не изменяя ничего, связанного с кодом.

0 голосов
/ 21 февраля 2019

Из звездочек :

Директивы - это специальные комментарии в вашем файле активов и основной способ взаимодействия с процессорами.Какие виды взаимодействия?Вы можете использовать эти директивы, чтобы сообщить 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 - Игнорировать целевой файл
0 голосов
/ 21 февраля 2019

Не всегда, например, в PHP у вас есть комментарии к комментариям: https://php -annotations.readthedocs.io / en / latest / UsingAnnotations.html

В JS при использовании потокаВы добавляете комментарий в верхней части файла, например:

// @flow

[file content]

На самом деле это обычный шаблон

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...