Estoy trabajando en una página web que tiene archivos js que no proporcionan exportaciones de esm y definen variables globales de las que dependen otros archivos. Algo como esto:
<!-- index.html --> ... <script src="first.js"></script> <script src="second.js"></script> ... /* first.js */ var someGlobalVariable = 'value'; /* second.js */ function anImportantFunc() { doSomethingWith(someGlobalVariable); } ... anImportantFunc();La página web no utiliza ningún marco de interfaz de usuario.
Estoy tratando de minimizar estos archivos js, pero es comprensible que el minificador cambie los nombres de las variables globales sin actualizar los otros archivos que dependen de ellos, por lo que esos otros archivos arrojan errores cuando tocan variables no definidas. ¿Hay alguna manera de hacer que el minificador sea consciente de esto, posiblemente especificando variables para ignorar en algunos/todos los archivos? Similar a cómo eslint le permite especificar globales que no deben marcarse como indefinidos. Entiendo que esto puede ser difícil porque los archivos no tienen relaciones de árbol de dependencia claras en la forma en que las tienen los módulos. Estoy usando esbuild pero estoy abierto a otras herramientas de compilación si manejan bien este escenario. Gracias.