Я использую пакет fos_js_routing на symfony4.Мне нужно, чтобы объект маршрутизации был доступен в моем виде ветки.Я определил маршрутизацию в assets / js / app.js, переносимом js-файле с Webpack Encore.Поскольку мой объект маршрутизации правильно встроен в этот файл, я хочу получить к нему доступ в виде ветки.
// assets/js/app.js
const routes = require('../../web/js/fos_js_routes.json');
import Routing from '../../vendor/friendsofsymfony/jsrouting-bundle/Resources/public/js/router.min.js';
Routing.setRoutingData(routes);
Я получил эту строку в моей конфигурации веб-пакета:
Encore
.setOutputPath('public/build/')
.setPublicPath('/build')
.cleanupOutputBeforeBuild()
.enableSourceMaps(!Encore.isProduction())
.addEntry('js/app', './assets/js/app.js')
Я получаю свое представление ветки, где транспилированный app.js доступен и успешно передается через веб-пакет Encore.Но переменная Маршрутизация недоступна (я получил ошибку клиента: Маршрутизация не определена),
// in my twig view, inside a script block
var redirectionUrl = Routing.generate('my_route', {arg: arg}); // Routing is not defined
, вероятно, потому что она определена как let в процессе транспортировки, и я хочу ее как var , чтобы быть доступным в каждом представлении ветки, где я включаю транспилированный app.js (public / build / js / app.js).Мой вид Twig включает в себя переносимый файл в этой строке и успешно импортирован в мои источники веток
<script src="{{ asset('build/js/app.js') }}"></script>
Как мне получить Routing в моем виде ветки с помощью Webpack encore?