Meteor загружает файлы JS на основе условных операторов

Это мой первый раз, когда я фактически использую Meteor, я пытаюсь загрузить файлы JS с помощью Meteor Framework, и я столкнулся с проблемой, когда хочу сделать следующее:

    <script type="text/javascript">
        document.write('<script src=' +
        ('__proto__' in {} ? 'js/vendor/zepto' : 'js/vendor/jquery') +
        '.js><\/script>')
    </script>

Я хочу загружать определенные файлы JS на основе определенных условий.

Я понимаю, что у Meteor есть способ загрузки JS-файлов, где они сначала загружаются наиболее глубоко, а затем в алфавитном порядке. Очевидно, что если я положу скрипты в папку клиента, то он все равно загрузит оба js-файла, не заботясь об этом. Как лучше всего динамически загружать файлы в соответствии с приведенным выше кодом?

Спасибо


person koramaiku    schedule 16.05.2013    source источник


Ответы (2)


Meteor игнорирует папки, начинающиеся с «.».

Решением было бы поместить все, что будет условно включено, в папку с именем, например '.includes', и использовать условные операторы в любом другом месте вашего проекта Meteor, чтобы включить их с чем-то вроде

require(path_to_that_folder + 'filename.js');

Видеть:

http://docs.nodejitsu.com/articles/getting-started/what-is-require

http://nodejs.org/api/modules.html

person Kendrick Ledet    schedule 16.05.2013
comment
Спасибо за ответ. Я думаю, что работа вокруг - это то, что мне нужно сделать. ;) - person koramaiku; 24.05.2013
comment
Нет проблем, если вам нужна дополнительная помощь, просто дайте мне знать - person Kendrick Ledet; 24.05.2013

С Meteor 1+ вы должны «загружать» файлы только из ваших личных и общих папок. Использование прямого чтения/записи для путей за пределами вашего личного и общего каталога, скорее всего, не удастся, поскольку пути к файлам меняются между разработкой и развертыванием Meter.

Для клиента вы можете получить доступ к любым файлам в вашем общедоступном каталоге, используя путь относительно вашего общедоступного каталога. Например, $.getScript() можно использовать для доступа к сценариям в вашей общей папке. Для сервера вы можете получить доступ к любому файлу в вашем личном каталоге, используя Assets.getText() или Assets.getBinary(), снова используя относительный путь из вашего личного каталога.

В обоих случаях не включайте в относительный путь ни private, ни public. Если ваш файл находится в папке «public/foo/yoo.js», укажите просто «foo/yoo.js».

person Chet Murphy    schedule 16.01.2015