Azure und Knoten js __dirname
Wahrscheinlich ist es nicht speziell mit Webpack / Memory-Fs verwandt, aber ich bekomme dieRangeError: Maximum call stack size exceeded
error (siehe unten für eine Aufrufliste).
Ich habe herausgefunden, dass__dirname
on Azure (webapp) gibt @ zurü\\100.78.172.13\volume-7-default\8f5ecde749dace2bb57a\4e07195f015b45ce8e9ba255dc901988\site\repository\Source\Website\Content\app\node_modules\webpack\node_modules\memory-fs\lib\normalize.js
in meiner Situation, währendprocess.cwd()
kehrt zurückD:\home\site\repository\Source\Website\Content\app
.
Ist von meiner Seite aus alles möglich, um den Knoten js so zu konfigurieren, dass er @ zurückgibD:\...
Anstatt von\\..
?
Wie reproduzieren:
Klone dashttps://github.com/intellismiths/webapp1
RepositoryErstellen Sie eine neue Azure Web App (Standardeinstellungen). Konfigurieren Sie die Bereitstellungsquelle für die Verwendung von GitHub.KlickenSync
. Der Vorgang dauert mehr als 10 Minuten und zeigt an, dass die Bereitstellung erfolgreich war.Gehen Sie zu den Anwendungseinstellungen in Azure und ändern SieWEBSITE_NODE_DEFAULT_VERSION
zu6.2.2
ehen Sie zur Kudu-Seite und öffnen Sie die Powershell-KonsolAusführennpm cache clean
Prüfen Sie die Knotenversion, indem Sie @ ausführenode -v
. Es sollte seinv6.2.2
avigieren Sie in Azure zuD:\home\site\respository\src\WebApp1
Ausführennpm run build
In der Konsole sollten viele Fehler angezeigt werden, die darauf hinweisen, dass Module nicht aufgelöst werden können.OPTIONAL. Prüfungnpm run build
auf Ihrem lokalen Computer - es sollte @ produzierwwwroot/app.js
ohne Fehler.Updatewebpack.config.js
einschließencontext: __dirname
, um frühere Fehler zu beheben.Ausführennpm run build
In der Konsole sollte der Fehler "RangeError: Maximale Aufrufstapelgröße überschritten" angezeigt werden.Update 1
Ich habe erst nach dem Hinzufügen des zweiten package.json versucht, die 6.2.2-Laufzeit festzulegen, daher ist die Projektstruktur nicht so einfach wie möglich. Wenn Sie den Knoten auf 6.2.2 setzen, wird der Build möglicherweise unterbrochen.