ntegración @Webpack FOSJsRoutingBundle con Symfony Flex y Angular

No puedo obtener FOSJsRoutingBundle trabajar conSymfony Flex, Webpack y AngularJS.

He estado usando este paquete en Symfony 3 con AngularJS durante mucho tiempo y nunca ha habido un problema, pero con la introducción del paquete web en Symfony Flex, la configuración se ha vuelto más compleja. Lamentablemente, la documentación de FOSJsRoutingBundle versión 2.2 no está clara.

Puede encontrar la documentación actual para este paqueteaqu.

Estoy usando la FOSJsRoutingBundle para que mis solicitudes de HTTP angular puedan usar las rutas generadas en lugar de las URL absolutas.

El problem

He configurado este paquete como se documenta a través del compositor. Las rutas se vuelcan a un archivo json ubicado encode/assets/fos_js_routes.json. Las rutas generadas en este archivo son válidas y lo que espero ver.

Como estoy usando Angular, quiero hacer la declaración inicial requerida del Enrutamiento en un archivo separado para que todos mis controladores Angulares puedan usar laRouting. sin tener que hacer ningún trabajo adicional en esos archivos.

FOS archivo de configuración /code/assets/js/fos_js_router.js ( Siguiendo la documentación)

const routes = require('../../assets/fos_js_routes.json');
import Routing from '../../vendor/friendsofsymfony/jsrouting-bundle/Resources/public/js/router.min.js';

Routing.setRoutingData(routes);

Sample Angular file /code/assets/js/apps/default/controller/test.js

(function () {

    'use strict';

    angular.module('test')
    .controller(
        'TestCtrl',
        ['$scope', '$http',
            function ($scope, $http) {

                let url = Routing.generate('test_route_name');
             }
         ])
});

Webpack Config

var Encore = require('@symfony/webpack-encore');

Encore
    .setOutputPath('public/build/')
    .setPublicPath('/build')
    .addEntry('app', './assets/js/app.js')
    .addEntry('app_fos_router', [
        './assets/js/fos_js_router.js'
    ])
    .addEntry('app_angular', [
        './assets/js/apps/default/app.js', // angular app setup
        './assets/js/apps/default/routes.js', // angular routes setup
        './assets/js/apps/default/controller/test.js' // angular where Routing is needed
    ])
    .enableSingleRuntimeChunk()
    .cleanupOutputBeforeBuild()
    .enableBuildNotifications()
    .enableSourceMaps(!Encore.isProduction())
    .enableVersioning(Encore.isProduction())
;

module.exports = Encore.getWebpackConfig();

Plantilla de ramita frontal

{% extends 'base.html.twig' %}

{% block title %}Test{% endblock %}

{% block javascripts %}
    {{ encore_entry_script_tags('app') }}
    {{ encore_entry_script_tags('app_fos_router') }}
    {{ encore_entry_script_tags('app_angular') }}
{% endblock %}

{% block body %}
    <div ng-app="test" ui-view="content"></div>
{% endblock %}
El erro

De la configuración anterior obtengotest.js: ReferenceError: Routing is not defined at en mis archivos AngularJS.

¿Qué debo hacer de manera diferente para poder usarlet url = Routing.generate('test_route_name'); en mis archivos AngularJS?

Respuestas a la pregunta(2)

Su respuesta a la pregunta