Ответ 1
Короткий ответ
Он идентифицирует ресурс, который является частью плагина.
Структура идентификатора: [plugin]![resource]
.
Длинный ответ
В документации вы можете найти, что:
Intern построен поверх стандартного загрузчика amd, что означает, что его модули также обычно записываются в формате модуля AMD.
Вот почему и как функция require
на самом деле вводится, поэтому ясно, что вы не используете модуль require
, предоставленный вместе с Node.JS.
В нем также указано, что:
[формат AMD] Позволяет асинхронно или условно разрешать модули и другие активы путем написания простых плагинов загрузчика
Если вы следуете ссылке предоставленной с документацией при цитировании загрузчиков, вы обнаружите, что:
Плагины загрузчика расширяют реализацию AMD, позволяя загружать ресурсы, которые не являются традиционными зависимостями JavaScript.
В частности, вы можете обнаружить, что зависимость имеет следующий вид:
[Plugin Module ID]![resource ID]
Само собой разумеется, что стандартная реализация загрузчика, которую вы получаете, используя intern, придерживается вышеупомянутого стандарта.
Из сказанного следует, что если мы рассмотрим:
intern/chai!assert
Вы можете прочитать его как inter/chai
как модуль плагина, а assert
- как необходимый ресурс.
Цель! символ в аргументе метода require()
должен удовлетворять требованиям синтаксиса, используемого для идентификации ресурса, который сам является частью плагина.