Управление общими зависимостями JavaScript в Symfony 2

16

Я хотел бы знать, какова стандартная передовая практика для работы с общими зависимостями JavaScript (и даже CSS) в нескольких пакетах Symfony 2.

Согласно книге на официальном сайте Symfony:

A bundle should not embed third-party libraries written in JavaScript, CSS, or any other language.

Это кажется логичным, но нет рекомендации о том, как на самом деле объявлять или требуют общих зависимостей активов, таких как jQuery или, что более важно, отдельных плагинов для jQuery. Я подчеркнул некоторые плагины, потому что просто включение хорошо известной, почти всегда используемой структуры JS в макет приложения будет "вроде бы хорошо", но плагин необходим на всякий случай, когда он будет использоваться.

Итак, если я не должен помещать его в каталог ресурсов моего пакета, то мои вопросы таковы:

  • где поставить сторонний код
  • как мне ссылаться
  • как другие пучки ссылаются на тот же самый плагин (желательно один и тот же физический файл)
  • как не требовать одинаковые активы более одного раза

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

Любые мысли об этом?

Теги:
dependencies

1 ответ

14
Лучший ответ

Сторонний плагин, который использует Assetic и полагается на вас для установки зависимости, должен сделать это, потребовав, чтобы у вас был актив с именем (например) "jquery" в вашем менеджере активов. Именно разработчику приложения предоставить этот актив в config.yml.

Это имеет смысл?

  • 1
    Конечно! Большое спасибо, что нашли время ответить на этот вопрос. Единственный вопрос, который у меня есть: возможно ли сделать псевдонимы именованного актива в менеджере активов? Потому что если Bundle1 требует jquery, а Bundle2 требует j_query, то я не хотел бы включать jQuery дважды из-за различий в названии требуемого актива.
  • 0
    Да, вы можете использовать экземпляр AssetReference для псевдонима одного актива с другим именем.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню