Подтвердить что ты не робот

Как включить JavaScript из CDN в метеор?

Я хотел бы включить JS из CDN в Meteor, прежде чем включать мои собственные клиентские скрипты, чтобы клиентские скрипты могли зависеть от него.

...
<script type="text/javascript" src="https://ajax.googleapis.com/..."></script>
...
<script type="text/javascript" src="/client/..."></script>
...

Я попытался включить файл script через *.html и между тегами <head>. Но кажется, что содержимое заголовка из *.html файлов всегда добавляется в конец заголовка HTML, независимо от того, где я помещаю его в иерархию файлов (например, размещение файла в папке lib или сортировка по алфавиту перед клиентскими JS файлами не поможет).

Любые идеи о том, как я мог бы включить JS из CDN перед клиентскими скриптами, не создавая смарт-пакет?

4b9b3361

Ответ 1

Предполагая, что вам не нужно загружать эти файлы перед пакетами Meteor, создайте JS файл, который загружается перед любым другим. Метеор загружает файлы в алфавитном порядке, поэтому он должен быть первым загруженным файлом. Для этого достаточно назвать его aaLoadCDN.js. Динамически загружайте скрипты CDN, добавив в документ head элемент script src:

var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');  // optional
script.setAttribute('src', 'url/to/the/cdn/script.js');
document.getElementsByTagName('head')[0].appendChild(script);

Вот некоторые реальные пакеты Meteor, загружающие скрипты из CDN:

Ответ 2

Вы можете добавить script после визуализации шаблона. Таким образом, ваш script будет загружаться только после загрузки каждой другой строки. Например, если вы непосредственно добавляете плагин jquery в свой шаблон html файл, вы получите ошибку "jquery not found". Но этот подход не позволяет:

Template.Main.onRendered(function () {

      $('head').append('<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-formhelpers/2.3.0/js/bootstrap-formhelpers.js"></script>');

});

Ответ 3

Там также заброшенный пакет, называемый meteor-external-fileloader, который дает пример использования Stripe.js. Он не поддерживается с сентября 2013 года, поэтому будьте осторожны.