Использовать пакет Webpack JS в файле twig

Я действительно новичок в 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 is not a function

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

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

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

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

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

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
550
1

Ответы 1

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

Symfony Frontend - часто задаваемые вопросы и общие проблемы

jQuery и устаревшие приложения

// app.js
var $ = require('jquery');
// ...
global.$ = global.jQuery = $;

Спасибо за ваш ответ, но моя проблема не в $ или jQuery, jQuery работает нормально, и я установил $ глобально, моя проблема связана с любым другим пакетом npm, например bootstrap-select или моим собственным пакетом javascriptnpm, как вы используете функции других пакетов в вашем проекте?

Farshadi 31.08.2018 13:07

Другие вопросы по теме