Estoy intentando reemplazar el cargador de scripts en desuso con los Módulos de activos de webpack 5.
Actualmente tengo un archivo HTML con:
import 'script-loader!systemjs';cargando systemjs .
Probé systemjs-webpack-interop como código sin éxito; yo obtengo
No se puede leer la propiedad 'meta' de undefined
Esto está en un proyecto de biblioteca heredada, y quiero estar seguro de que el código existente aún puede consumirlo. Mi objetivo es hacer la menor cantidad de cambios posible.
No me queda claro en la documentación del paquete web cómo abordar el reemplazo de esto. Estoy buscando una configuración de ejemplo que se comporte de la misma manera que mi código original.
La documentación sobre Reemplazar la sintaxis del cargador en línea sugiere una opción:
// Portion of webpack config rules: [ { resourceQuery: /raw/, type: 'asset/source' } ] // Source file (such as index.js) import 'systemjs?raw';Esto se construye, pero la salida es diferente. Todavía estoy investigando para ver si las diferencias importan.
Una pieza adicional que parece que necesitaré:
La documentación del cargador de scripts dice que ejecutará el script una vez en el contexto global y recomienda lo siguiente para la migración al raw-loader formato (para el paquete web 4):
import('raw-loader!someScript.js') .then(rawModule => eval.call(null, rawModule.default))Parece que puedo hacer lo mismo con mi importación de activos sin procesar:
import('systemjs?raw') .then(rawModule => eval.call(null, rawModule.default));