Что такое строка "регистр формата" в верхней части файлов JavaScript?

В последнее время в различных файлах JavaScript я вижу следующую строку вверху:

"format register";

Для чего это?

Я вижу его в файлах angular 2 и systemJS.

Ответ 1

Добавив 'format register'; в верхней части всех файлов ts проблема кажется, решена, но я полагаю, что это помогает SystemJS правильно понимать/загружать модули.

Он просто уменьшает ошибку, как указано. Здесь - это диалог orignal, который запустил его. Но это просто делает SystemJS Load правильно. Infact ему стало известно, что SystemJS создал модуль, который сделал это не обязательным, добавив следующее:

System.config({
  meta: { main: { format: 'register' } }
});

Это объясняется более здесь.

Причина, чтобы использовать его. В заключение, "регистр формата" используется, чтобы убедиться, что SystemJS правильно загружает свои модули и в порядке! Надеюсь, это помогло!

Ответ 2

Отличный вопрос, я был заинтригован и не знал себя, поэтому отправил квест.

Кажется, это способ кода ES5 для поддержки модулей стиля ES6.

System.register можно рассматривать как новый формат модуля, предназначенный для поддержки точной семантики модулей ES6 в ES5. Это формат, который был разработан из совместной работы и поддерживается как выход модуля в Traceur (как экземпляр), Babel и TypeScript (как система). В этом формате поддерживается все динамические привязки и циклические эталонные поведения, поддерживаемые модулями ES6. Таким образом, он действует как безопасный и всеобъемлющий целевой формат для пути polyfill в модули ES6.

https://github.com/ModuleLoader/es6-module-loader/wiki/System.register-Explained

Использование примера:

Чтобы добавить более подробную информацию, вот пример в примечаниях к обновлению angular 1.x, который показывает пример регистра формата в действии, но вместо комментария в верхней части файла, вместо этого в config.

System.config({ packages: { 'base/app/js': { defaultExtension: false, format: 'register', ...

https://angular.io/docs/ts/latest/guide/upgrade.html

Причина использования

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

https://github.com/systemjs/systemjs/blob/master/docs/module-formats.md

Использование "формата регистра" в верхней части файла является одним из способов, позволяющих определить формат.