использовать пакет webpack JS в файле ветки - PullRequest
0 голосов
/ 30 августа 2018

Я действительно новичок в twig и webpack.

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

например, я устанавливаю boostrap-select пакет и требую, чтобы в app.js

// app.js

var $ = require('jquery');

require('bootstrap/dist/js/bootstrap');
require('bootstrap-select/dist/js/bootstrap-select');

$(document).ready(function () {

    $('.selectpicker').selectpicker({});
})(jQuery);

все нормально и отлично работает, но когда вы вызываете эту функцию пакета внутри twig файла вот так

{% block javascripts %}
    <script type="text/javascript" src="{{ asset('b/app.js') }}"></script>
    <script>
        $('.selectpicker').selectpicker({});
    </script>
{% endblock %}

Я получаю ошибку.

Uncaught TypeError: $ (...). Selectpicker не является функцией

после поиска в Google в течение одного дня я обнаружил, что не могу этого сделать ... и я должен сделать некоторые дополнительные вещи ... каждый пример около jQuery.

как насчет других пакетов? Как определить функцию из yarn пакетов глобально и использовать это в файле ветки.

Я пробую все эти решения, но у меня не получается

funtionName = require('package path')
window.functionName =  functionName;
global.funtionNmae = functionName;

у кого-нибудь есть решения, мне просто нужно вызвать функцию в ветке :(.

1 Ответ

0 голосов
/ 31 августа 2018

"Эта ошибка возникает, когда ваш код (или некоторая используемая вами библиотека) ожидает, что $ или jQuery будут глобальной переменной. Но когда вы используете Webpack и require ('jquery'), глобальные переменные не устанавливаются."

Symfony Frontend - FAQ и общие вопросы

jQuery и унаследованные приложения

// app.js
var $ = require('jquery');
// ...
global.$ = global.jQuery = $;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...