Tal vez haya alguna documentación sobre cómo lidiar con esta situación, pero ni siquiera sé cómo buscarla.
Aquí está el trato, tenemos un "módulo" Symfony (ex Bundle) hecho por la compañía que compartimos en múltiples proyectos. Atm no está incluido en packagist y lo requerimos con las rutas del repositorio del compositor local si eso importa.
Dentro del módulo compartido tenemos algunos css y algunos js que deben incluirse. Dado que uno de esos módulos compartidos (o paquete, como quiera llamarlo) tiene bootstrap (el kit de herramientas de interfaz de css), el módulo en sí lo requiere junto con su css.
Dentro del módulo compartido tenemos un archivo JS "CoreLibrary.js" e importamos el js requerido así:
import $ from 'jquery'; import 'bootstrap'; export class CoreLibrary { ... more code }
Luego, dentro de la aplicación principal incluimos el archivo js común del archivo app.js así:
import { CoreLibrary } from '../public/bundles/thebundlename/js/CoreLibrary';
Eso no parece ser lo ideal, y además, con bis tenemos que repetir
import $ from 'jquery'; import 'bootstrap'; import { CoreLibrary } from '../public/bundles/thebundlename/js/CoreLibrary';
En cada archivo .js que necesitamos. Es una carga tan grande que no puedo creer que no haya mejores maneras de hacerlo.
Nota al margen: no hace mucho tiempo tuve que seguir este: Configuración de Yarn y Webpack Encore en el proyecto Symfony 4.1 porque recibía un error durante la "observación de hilo".
¿Cuál es la forma correcta de hacerlo con un módulo compartido por la empresa que requiere una biblioteca de terceros como bootstrap?
Para jquery global tengo esto en el archivo js principal
const $ = require('jquery'); global.$ = global.jQuery = $;
También línea sin comentarios en la configuración del paquete web sobre jquery.