Adicionei um novo pacote npm ao meu projeto e o exigi em um dos meus módulos.
Agora recebo esta mensagem do webpack,
build modulesNote: The code generator has deoptimised the styling of "D:/path/to/project/node_modules/ramda/dist/ramda.js" as it exceeds the max of "100KB".
O que isso significa? Preciso tomar alguma ação?
Respostas:
Isso está relacionado à
compact
opção do compilador Babel, que ordena "não incluir caracteres de espaço em branco supérfluos e terminadores de linha. Quando definido como 'automático', compacto é definido como verdadeiro em tamanhos de entrada> 100 KB". Por padrão, seu valor é "auto", e provavelmente esse é o motivo pelo qual você está recebendo a mensagem de aviso. Veja a documentação do Babel .Você pode alterar esta opção do Webpack usando um parâmetro de consulta . Por exemplo:
fonte
?compact=false
vez doquery
parâmetro. Por exemplo:{test: /\.js$/, loaders: ['ng-annotate', 'babel?compact=false']}
false
. Para casos como o meu, onde o formato da saída é importante, isso tem valor. Como a maioria das coisas, depende. :)Este parece ser um erro do Babel . Suponho que você use o babel-loader e não exclua bibliotecas externas do seu teste do carregador. Pelo que sei, a mensagem não é prejudicial, mas você ainda deve fazer algo assim:
Dar uma olhada. Foi isso?
fonte
exclude: /node_modules/
.exclude
.Qualquer uma das três opções abaixo se livra da mensagem (mas por razões diferentes e com efeitos colaterais diferentes, suponho):
node_modules
diretório ou explicitamenteinclude
o diretório em que seu aplicativo reside (que provavelmente não contém arquivos com mais de 100 KB)compact
comotrue
(na verdade, qualquer valor que não seja "automático")compact
comofalse
(veja acima)O número 1 na lista acima pode ser alcançado excluindo o
node_modules
diretório ou incluindo explicitamente o diretório em que seu aplicativo reside.Por exemplo, em
webpack.config.js
:... ou usando
include: path.resolve(__dirname, 'app/')
(novamente emwebpack.config.js
).Os nºs 2 e 3 da lista acima podem ser realizados pelo método sugerido nesta resposta ou (de preferência) editando o
.babelrc
arquivo. Por exemplo:Testado com a seguinte configuração:
fonte
Eu tentei o jeito de Ricardo Stuven, mas não funcionou para mim. O que funcionou no final foi adicionar "compact": false ao meu arquivo .babelrc:
fonte
lodash.js
, e isso corrigiu o problema.Para mais explicações
THIS LINK
, é opcionalBabel compiler
que os comandos não incluam caracteres de espaço em branco supérfluos e terminadores de linha. algumas vezes atrás, seu limiar era,100KB
mas agora é500KB
.Eu sugiro que você desative essa opção no seu ambiente de desenvolvimento, com esse código no
.babelrc
arquivo.Para o ambiente de produção,
Babel
use a configuração padrão que éauto
.fonte
Na compilação react / redux / webpack / babel, foi corrigido este erro removendo o tipo de tag de script text / babel
obteve erro:
sem erro:
fonte
no webpack 4 com várias regras de módulo, você faria algo assim na sua regra .js:
fonte
Talvez este não seja o caso da pergunta original do OP, mas: se você exceder o tamanho máximo padrão, isso talvez seja um sintoma de algum outro problema que você tenha. no meu caso, eu tinha o aviso, mas finalmente ele se transformou em um FATAL ERRO: MarkCompactCollector: cópia semiespaço, fallback na geração antiga A alocação falhou - o heap do JavaScript está sem memória. o motivo foi que eu importei dinamicamente o módulo atual , então isso acabou com um loop infinito ...
fonte
require('../../../' + a + '/' + b)
). Removê-lo resolveu o problema (e nunca retornará).