Can't apply plugins to worker
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 28/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- javascript, webpack
- Domínio
- build-system, tooling
Direção de pesquisa
Comece em src/index.js, em torno da chamada a createChildCompiler na linha 59, e revise o comportamento de compiladores filhos de webpack's Compiler.js nas linhas vinculadas. Rastreie como os compiladores filhos de worker são criados e determine como uma lista de plugins poderia ser fornecida sem afetar compiladores filhos não relacionados. Está concluído quando os builds de worker puderem receber plugins como CompressionPlugin, com cobertura para a configuração compatível.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Currently there is no way to pass plugins to workerize-loader.
Webpack's documentation is wrong when it states that child compilers inherit all hooks and plugins from the parent compiler. They infact do not inherit plugins at all; they copy over a number of hooks from the parent compiler -- where some plugins may have added them -- to the child compiler.
Several hooks are blacklisted. Banned from this copy process are: make, compile, emit, afterEmit, invalid, done, and thisCompilation. There are ofcourse good reasons not to copy those hooks - as doing so would mess with the control flow for the child compilation and parent compilation. However, it does mean the child compiler has to be fed its own instances of plugins such as the CompressionPlugin which attach to those hooks.
This is what the third plugins argument to the createChildCompiler method is for, but having a look at how the child compiler that creates the body of the worker is called:
it doesn't link up that third parameter. So right now there is no well-defined way to e.g. apply CompressionPlugin and get Gzip or Brotli compressed workers.
It may still be possible to achieve this by tapping the childCompiler hook on the parent compilation, as it does get passed the created child compiler.
This requires people write their own custom "plugin to apply plugins" - which is well beyond the comfort zone of most Webpack users. (Most webpack users don't write their own plugins. That's something you typically only do if you really; really know what you're doing. )
It's also not exactly trivial to get right, as you'd still also need to filter by the child compiler's name to ensure they're only adding plugins to the correct child compilers created by the workerize-loader and not to e.g. those created by the MiniCssExtractPlugin. Making this worse is the fact that those child compiler names are internal implementation details and not part of any public API, i.e. are subject to change over time.
I.e. this is a short-term workaround at best.
- Linguagem predominante
- JavaScript
- Estrelas
- 2.3k
- Forks
- 85
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de developit/workerize-loader
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 25/100
developit/workerize-loader#131 · 6 comentários · 1 reação ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 38/100
developit/workerize-loader#130 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 52/100
developit/workerize-loader#129 ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
developit/workerize-loader#128 ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 25/100
developit/workerize-loader#126 · 4 comentários ·
Todas as issues de developit/workerize-loader
Issues semelhantes
-
awaiting triage bug Causes friction Hop Gui P1 P2 Transforms
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Improve Title Support Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
georgestephanis/p2026#40 ·
-
Enatega Customer and Rider app: Add-ons price is not visible to customer after order is placed. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Margaret-Petersen/food-delivery-app-clone-react-native#1981 ·