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

RequireJS: Несколько main.js?

Я создаю одностраничное приложение с использованием requireJS и до сих пор люблю его. Я пришел к выводу о разработке других частей сайта за пределами основного приложения и не совсем уверен, как (или если) использовать requireJS для этого.

В моем основном приложении все вызвано этим тегом script:

<script data-main='/scripts/main' src='/scripts/libs/require.js'>

Сейчас я разрабатываю домашнюю страницу, у которой есть свои собственные скрипты. Использование оптимизатора, когда дело доходит до получения живого сайта, который свяжет все эти скрипты в один пакет main.js. Я изо всех сил пытаюсь понять, где находится мой сайт.

Скажите, что мое приложение зависит от jQuery, и оно добавляется в оптимизированную версию приложения, а что, если я хочу использовать jQuery на главной странице? Я не хочу загружать в свое приложение main.js только для того, чтобы получить доступ к моему модулю jQuery. Так что да... немного смущен!


Я представляю структуру сайта вроде:

/scripts
  - app-main.js //(includes all module dependencies after optimzation)
  - home-main.js //(includes all module dependencies after optimzation)

приложения:

<script data-main='/scripts/app-main' src='/scripts/libs/require.js'>

Домашняя страница:

<script data-main='/scripts/home-main' src='/scripts/libs/require.js'>


Вопросы

  • Как я могу использовать RequireJS для разработки разных частей сайта?
  • Рекомендуется ли иметь несколько файлов main.js?
  • Как мои разные файлы main.js имеют общие модули, такие как оптимизация почты jQuery?
4b9b3361

Ответ 1

Поэтому require.js всегда следует использовать на любой странице, чтобы обеспечить модульность и чистое пространство имен. Я считаю, что каждое "приложение" нуждается в нем main.js script. При оптимизации вашего сайта r.js позволяет вам исключать модули из компиляции, которые вы должны делать для jQuery всегда.

Таким образом require.js всегда будет загружать jquery.js "на лету" и большую часть времени из кеша. Поиск других модулей, которые могут быть кэшированы между вашим приложением и домашней страницей, должен выполняться по своему усмотрению и зависит от потока ваших пользователей и других факторов.

Похоже, у вас есть два проекта, приложение и маркетинговый сайт. Я считаю, что те должны быть разделены на достаточно длинные и должны иметь свои собственные соответствующие папки "js", содержащие их собственные main.js.

Ответ 2

В команде requirejs есть несколько примеров для многостраничных приложений на github. Посмотрите на: https://github.com/requirejs/example-multipage

В основном вы будете иметь следующую структуру:

  • page1.html: страница 1 приложения.

  • page2.html: страница 2 приложения.

  • js app: каталог для хранения модулей, специфичных для приложения.

  • lib: каталог для хранения сторонних модулей, например jQuery.

  • common.js: содержит конфигурацию requirejs, и это будет цель сборки для набора общих модулей.

  • page1.js: используется для основной информации для page1.html. Загружает общий модуль, затем загружает приложение /main 1, основной модуль для страницы 1.

  • page2.js: используется для основной базы данных для page2.html. Загружает общий модуль, затем загружает приложение /main 2, основной модуль для страницы 2.