Esto es un problema con Webpack v4 cuando la regla:
{
analizador: {requireEnsure: false},
}
teniendo esta salida:
ADVERTENCIA en ./node_modules/pdfjs-dist/build/pdf.js 7873: 6-13
Dependencia crítica: la función require se usa de una manera en la que las dependencias no se pueden extraer estáticamente
¿Cuál es la ventaja de habilitar esa regla (ya que no creo que la habilitemos de forma predeterminada) y en qué línea sale mal? ¿Está en el código fuente PDF.js o en el código de paquete generado? Proporcione un poco más de información y el contenido de la línea 7873.
No creo que la configuración de Webpack sea compatible con el código fakeWorkerFilesLoader
que es necesario en algunos entornos como respaldo cuando el usuario no configuró a los trabajadores correctamente, por lo que este problema probablemente no sea válido desde el punto de PDF.js de vista.
Cerrando porque tampoco creo que haya nada que podamos hacer realmente aquí.
¿Cuál es la ventaja de habilitar esa regla?
Parece que create-react-app
ha establecido requireEnsure: false
porque no es una función de idioma estándar .
Esto conduce a cualquier proyecto create-react-app
que use pdf.js para mostrar la advertencia;
./node_modules/pdfjs-dist/build/pdf.js
Critical dependency: require function is used in a way in which dependencies cannot be statically extracted
No entiendo esto lo suficientemente bien como para saber si hay una forma de incluir el código de reserva que no activa la advertencia, pero como parece razonable incluir una reserva, abriré un problema en el create-react-app
repo también.
No estoy seguro, pero parece que una posible solución al código de reserva sería publicar PDF.js como módulos es6 y usar algo como un paquete acumulativo para enviar el código de reserva por separado https://github.com/mozilla/pdf. js / issues / 10317
Tengo problemas para seguir el código fakeWorkerFilesLoader
.
eso es necesario en algunos entornos como alternativa cuando el usuario no configuró a los trabajadores
@Snuffleupagus, ¿ podrías desarrollar un poco sobre eso? ¿Cuándo se activará la reserva y cómo se carga al trabajador en ese caso? ¿A qué tipo de entornos te refieres? ¿Sería posible eliminar el respaldo en favor de un error?
Tengo el problema exacto, obtengo el error exacto de un complemento que se basa en pdf.js (vue-pdf).
El error que obtengo es:
ADVERTENCIA en ./node_modules/pdfjs-dist/build/pdf.js 9818: 60-67
Dependencia crítica: la función require se usa de una manera en la que las dependencias no se pueden extraer estáticamente.
No estoy seguro, pero parece que una posible solución al código de reserva sería publicar PDF.js como módulos es6 y usar algo como un resumen para enviar el código de reserva por separado # 10317
Esto sería excelente. Esta advertencia es muy molesta en cualquier proyecto de CRA.
¿Esto nunca se solucionará @timvandermeij? Me pregunto si debería estar esperando o moviéndome.
No ha quedado claro que esto sea realmente algo que deba arreglarse en el lado de PDF.js y, de ser así, cuáles son las alternativas para require.ensure
. No podemos proporcionar soporte para "create-react-app", por lo que probablemente sea mejor archivar el problema en su rastreador.
Si https://github.com/mozilla/pdf.js/issues/10253#issuecomment -463377308 abordaría el problema, entonces eso ya se rastrea en un problema separado.
@timvandermeij Hola, esto me sucedió en una configuración de Vue.js y probé todos los complementos que pude encontrar. Todos estaban basados en pdf.js y obtuve el mismo error:
WARNING in ./node_modules/pdfjs-dist/build/pdf.js 9818:60-67
Critical dependency: require function is used in a way in which dependencies cannot be statically extracted.
Para una solución temporal, anule la regla react-scripts .
Comentario más útil
Parece que
create-react-app
ha establecidorequireEnsure: false
porque no es una función de idioma estándar .Esto conduce a cualquier proyecto
create-react-app
que use pdf.js para mostrar la advertencia;No entiendo esto lo suficientemente bien como para saber si hay una forma de incluir el código de reserva que no activa la advertencia, pero como parece razonable incluir una reserva, abriré un problema en el
create-react-app
repo también.