Dodałem nowy pakiet npm do mojego projektu i wymagam go w jednym z moich modułów.
Teraz otrzymuję tę wiadomość z webpacka,
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".
Co to znaczy? Czy muszę coś zrobić?
Odpowiedzi:
Jest to związane z
compact
opcją kompilatora Babel, która nakazuje „nie dołączać zbędnych białych znaków i terminatorów linii. Po ustawieniu na 'auto' kompaktowanie jest ustawiane na true dla wielkości wejściowych> 100KB”. Domyślnie jego wartość to „auto”, więc prawdopodobnie jest to powód, dla którego otrzymujesz komunikat ostrzegawczy. Zobacz dokumentację Babel .Możesz zmienić tę opcję z pakietu Webpack za pomocą parametru zapytania . Na przykład:
źródło
?compact=false
programów ładujących, możesz użyć zamiastquery
parametru. Na przykład:{test: /\.js$/, loaders: ['ng-annotate', 'babel?compact=false']}
false
. W przypadkach takich jak mój, w których format wyniku jest ważny, ma to wartość. Jak większość rzeczy, to zależy. :)Wygląda na to, że jest to błąd Babel . Domyślam się, że używasz programu ładującego babel i nie wykluczasz bibliotek zewnętrznych z testu programu ładującego. O ile wiem, wiadomość nie jest szkodliwa, ale nadal powinieneś zrobić coś takiego:
Spójrz. Czy to było to?
źródło
exclude: /node_modules/
.exclude
.Każda z poniższych trzech opcji usuwa komunikat (ale przypuszczam z różnych powodów iz różnymi skutkami ubocznymi):
node_modules
katalog lub wyraźnieinclude
katalog, w którym znajduje się Twoja aplikacja (który prawdopodobnie nie zawiera plików przekraczających 100 KB)compact
natrue
(właściwie dowolną wartość inną niż „auto”)compact
nafalse
(patrz wyżej)Numer 1 na powyższej liście można osiągnąć, wykluczając
node_modules
katalog lub jawnie włączając katalog, w którym znajduje się Twoja aplikacja.Np. W
webpack.config.js
:... lub używając
include: path.resolve(__dirname, 'app/')
(ponownie wwebpack.config.js
).Punkty 2 i 3 na powyższej liście można osiągnąć metodą sugerowaną w tej odpowiedzi lub (moje preferencje) edytując
.babelrc
plik. Na przykład:Przetestowano z następującą konfiguracją:
źródło
Próbowałem sposobu Ricardo Stuvena, ale to nie zadziałało. W końcu zadziałało dodanie „compact”: false do mojego pliku .babelrc:
źródło
lodash.js
, i to rozwiązało problem.Aby przeczytać więcej wyjaśnień
THIS LINK
, istnieje opcjaBabel compiler
tych poleceń, aby nie dołączać zbędnych białych znaków i terminatorów linii. jakiś czas temu jego próg był,100KB
ale teraz jest500KB
.Proponuję wyłączyć tę opcję w środowisku programistycznym, z tym kodem w
.babelrc
pliku.W środowisku produkcyjnym
Babel
użyj domyślnej konfiguracji, czyliauto
.źródło
W kompilacji react / redux / webpack / babel naprawiono ten błąd poprzez usunięcie tagu typu text / babel
dostałem błąd:
żaden błąd:
źródło
w pakiecie webpack 4 z wieloma regułami modułów po prostu zrobiłbyś coś takiego w swojej regule .js:
źródło
Może tak nie jest w przypadku oryginalnego pytania OP, ale: jeśli przekroczysz domyślny maksymalny rozmiar, może to być objaw innego problemu. w moim przypadku miałem ostrzeżenie, ale ostatecznie zmieniło się to w KRYTYCZNY BŁĄD: MarkCompactCollector: kopia w połowie spacji, powrót do starej generacji Alokacja nie powiodła się - sterta JavaScript zabrakło pamięci. powodem było to, że dynamicznie zaimportowałem bieżący moduł, więc skończyło się na niekończącej się pętli ...
źródło
require('../../../' + a + '/' + b)
). Usunięcie go rozwiązało problem (i nigdy nie wróci).