Este é um problema com o Webpack v4 quando a regra:
{
analisador: {requireEnsure: false},
}
tendo esta saída:
AVISO em ./node_modules/pdfjs-dist/build/pdf.js 7873: 6-13
Dependência crítica: a função require é usada de forma que as dependências não possam ser extraídas estaticamente
Qual é a vantagem de habilitar essa regra (já que não acho que habilitamos por padrão) e em qual linha ela dá errado? Está no código-fonte PDF.js ou no código do pacote gerado? Forneça um pouco mais de informações e o conteúdo da linha 7873.
Não acho que a configuração do Webpack seja compatível com o código fakeWorkerFilesLoader
que é necessário em alguns ambientes como um fallback quando o usuário não configurou os trabalhadores corretamente, portanto, este problema é provavelmente inválido do ponto de PDF.js de visualizar.
Fechando, pois também acho que não há nada que possamos realmente fazer aqui.
Qual é a vantagem de habilitar essa regra
Parece que create-react-app
definiu requireEnsure: false
porque não é um recurso de idioma padrão .
Isso leva a qualquer projeto create-react-app
que usa pdf.js para mostrar o aviso;
./node_modules/pdfjs-dist/build/pdf.js
Critical dependency: require function is used in a way in which dependencies cannot be statically extracted
Não entendo isso bem o suficiente para saber se há uma maneira de incluir o código substituto que não acione o aviso, mas como parece razoável incluir um substituto, abrirei um problema no create-react-app
repo também.
Não tenho certeza, mas parece que uma possível solução para o código de fallback seria publicar PDF.js como módulos es6 e usar algo como rollup para enviar o código de fallback separadamente https://github.com/mozilla/pdf. js / issues / 10317
Estou tendo problemas para seguir o código fakeWorkerFilesLoader
.
isso é necessário em alguns ambientes como um substituto quando o usuário não configurou os trabalhadores
@Snuffleupagus você poderia elaborar um pouco sobre isso? Quando o fallback será ativado e como o trabalhador será carregado nesse caso? A que tipo de ambiente você está se referindo? Seria possível remover o fallback em favor de um erro?
Eu tenho o problema exato, obtenha o erro exato de um plugin que é baseado em pdf.js (vue-pdf).
O erro que recebo é:
AVISO em ./node_modules/pdfjs-dist/build/pdf.js 9818: 60-67
Dependência crítica: a função de requerimento é usada de uma maneira que as dependências não podem ser extraídas estaticamente.
Não tenho certeza, mas parece que uma possível solução para o código substituto seria publicar PDF.js como módulos es6 e usar algo como rollup para enviar o código substituto separadamente # 10317
Isso seria excelente. Este aviso é super irritante em qualquer projeto CRA.
Isso nunca será corrigido @timvandermeij? Apenas me perguntando se eu deveria estar esperando ou me mudando.
Não ficou claro que isso é realmente algo que precisa ser corrigido no lado do PDF.js e, em caso afirmativo, quais são as alternativas para require.ensure
. Não podemos fornecer suporte para "criar-reagir-app", então provavelmente é melhor registrar o problema em seu rastreador.
Se https://github.com/mozilla/pdf.js/issues/10253#issuecomment -463377308 resolver o problema, isso já foi rastreado em um problema separado.
@timvandermeij Oi, isso aconteceu comigo em uma configuração Vue.js e tentei todos os plug-ins que pude encontrar. Eles eram todos baseados em pdf.js, e recebi o mesmo erro:
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 uma correção temporária, substitua a regra de scripts de reação .
Comentários muito úteis
Parece que
create-react-app
definiurequireEnsure: false
porque não é um recurso de idioma padrão .Isso leva a qualquer projeto
create-react-app
que usa pdf.js para mostrar o aviso;Não entendo isso bem o suficiente para saber se há uma maneira de incluir o código substituto que não acione o aviso, mas como parece razoável incluir um substituto, abrirei um problema no
create-react-app
repo também.