Ich habe meinem Projekt ein neues npm-Paket hinzugefügt und benötige es in einem meiner Module.
Jetzt bekomme ich diese Nachricht vom 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".
Was heißt das? Muss ich etwas unternehmen?
Antworten:
Dies hängt mit der
compact
Option des Babel-Compilers zusammen, der befiehlt, "keine überflüssigen Leerzeichen und Zeilenabschlüsse einzuschließen. Bei Einstellung auf 'auto' wird compact bei Eingabegrößen von> 100 KB auf true gesetzt." Standardmäßig ist der Wert "auto". Dies ist wahrscheinlich der Grund, warum Sie die Warnmeldung erhalten. Siehe Babel-Dokumentation .Sie können diese Option in Webpack mithilfe eines Abfrageparameters ändern . Beispielsweise:
quelle
?compact=false
anstelle desquery
Parameters verwenden. Zum Beispiel:{test: /\.js$/, loaders: ['ng-annotate', 'babel?compact=false']}
false
. Für Fälle wie meinen, in denen das Format der Ausgabe wichtig ist, hat das Wert. Wie die meisten Dinge kommt es darauf an. :)Dies scheint ein Babel-Fehler zu sein . Ich vermute, Sie verwenden Babel-Loader und schließen externe Bibliotheken nicht von Ihrem Loader-Test aus. Soweit ich das beurteilen kann, ist die Nachricht nicht schädlich, aber Sie sollten trotzdem Folgendes tun:
Guck mal. War es das
quelle
exclude: /node_modules/
.exclude
.Eine der folgenden drei Optionen entfernt die Nachricht (aber aus verschiedenen Gründen und mit unterschiedlichen Nebenwirkungen, nehme ich an):
node_modules
Verzeichnis oder explizitinclude
das Verzeichnis aus, in dem sich Ihre App befindet (das vermutlich keine Dateien mit mehr als 100 KB enthält).compact
auftrue
(eigentlich einen anderen Wert als "auto").compact
auffalse
(siehe oben)Die Nummer 1 in der obigen Liste kann erreicht werden, indem entweder das
node_modules
Verzeichnis ausgeschlossen oder das Verzeichnis, in dem sich Ihre App befindet, explizit eingeschlossen wird.ZB in
webpack.config.js
:... oder mit
include: path.resolve(__dirname, 'app/')
(wieder inwebpack.config.js
).# 2 und # 3 in der obigen Liste können durch die in dieser Antwort vorgeschlagene Methode oder (meine Präferenz) durch Bearbeiten der
.babelrc
Datei erreicht werden. Z.B:Getestet mit folgendem Setup:
quelle
Ich habe es mit Ricardo Stuven versucht, aber es hat bei mir nicht funktioniert. Am Ende funktionierte das Hinzufügen von "compact": false zu meiner .babelrc-Datei:
quelle
lodash.js
, und dies behebt das Problem.Für weitere Erläuterungen
THIS LINK
können dieseBabel compiler
Befehle keine überflüssigen Leerzeichen und Zeilenabschlüsse enthalten. Vor einiger Zeit war seine Schwelle100KB
aber jetzt ist500KB
.Ich biete Ihnen an, diese Option in Ihrer Entwicklungsumgebung mit diesem Code in der
.babelrc
Datei zu deaktivieren .Babel
Verwenden Sie für die Produktionsumgebung die Standardkonfigurationauto
.quelle
In React / Redux / Webpack / Babel Build wurde dieser Fehler durch Entfernen des Skript-Tag-Typs text / babel behoben
Fehler erhalten:
kein Fehler:
quelle
In Webpack 4 mit mehreren Modulregeln würden Sie in Ihrer .js-Regel einfach so etwas tun:
quelle
Dies ist möglicherweise nicht der Fall bei der ursprünglichen OP-Frage, aber: Wenn Sie die maximale Standardgröße überschreiten, ist dies möglicherweise ein Symptom für ein anderes Problem, das Sie haben. In meinem Fall hatte ich die Warnung, aber schließlich wurde daraus ein FATAL ERROR: MarkCompactCollector: Semi-Space-Kopie, Fallback in der alten Generation. Zuordnung fehlgeschlagen - JavaScript-Heap nicht genügend Speicher. Der Grund war, dass ich das aktuelle Modul dynamisch importiert habe , was zu einer Endlosschleife führte ...
quelle
require('../../../' + a + '/' + b)
). Durch das Entfernen wurde das Problem behoben (und es wird niemals zurückkehren).