2016-07-16 8 views
2

Я установил виджет, используя npm. Он устанавливается под папкой node_modules. Мне нужно включить JavaScript виджета и CSS файлы в моем View, но так как они не находятся в папке Web я не могу включить их, используя следующий метод:Как я могу ссылаться на компоненты node_modules внутри представлений Symfony

<link href="{{ asset('assets/someFolder/.css') }}" rel="stylesheet" type="text/css" /> 

Как я могу добиться выше?

+0

В документации предлагается использовать другие инструменты, такие как grunt and bower, для создания и развертывания ваших сетевых ресурсов [веб-интерфейсы на основе интерфейса] (http://symfony.com/doc/current/best_practices/web-assets. HTML # внешний интерфейс на основе-приложений) – ohvitorino

ответ

0

как объяснено здесь Specify path to node_modules in package.json нет надлежащего способа проинструктировать package.json, чтобы установить зависимости в определенном конкретном пути. Мне пришлось вручную изменить папку Web, а затем загрузить туда зависимостей виджета.

0

Существует несколько способов решения этой проблемы, о которой я знаю. Я собираюсь показать вам, как я использую node_modules в symfony. Я использую Yarn и Assetic bundle для этого, это на самом деле проще, чем вы думаете.

  1. Установить пряжу для вашей системы и установить сложный комплект в symfony. Они довольно просты.

  2. Создайте новый каталог внутри своего AppBundle (или в любом из ваших пакетов) и назовите его Assets. Перейдите в свою папку с консолью и установите там модули узлов, используя пряжу.

    yarn add [email protected]

  3. Теперь вы можете включать в свой актив следующим образом в вашем представлении.

    {% stylesheets '@AppBundle/Assets/node_modules/bootstrap/dist/css/bootstrap.css' filter='cssrewrite' %} <link rel="stylesheet" href="{{ asset_url }}" /> {% endstylesheets %}

Надеется, что это помогает.