Bearbeiten: Wenn Sie Ihre Abhängigkeit auf 2.18.1 setzen, ist alles in Ordnung.
Bearbeiten 2: Setze "moment": "2.18.1"
in deinem package.json
Bearbeiten 3: Wir glauben, dass dies behoben ist.
Hallo.
Verwenden der Create-React-App. Nach dem Update auf 2.19.0 habe ich diesen Fehler beim Laden:
Fehler: Kann Modul "./locale" nicht finden
-> 9 Stack-Frames wurden zusammengeklappt.
./src/utils/Utils.js
src/utils/Utils.js:1
1 | Moment aus 'Moment' importieren
Ich habe das gleiche und bestätige diesen Fehler.
Ich auch
Kann bestätigen:
This relative module was not found: * ./locale in ./node_modules/moment/src/lib/locale/locales.js
OK, wir werden uns das ansehen, aber es wird nicht sehr schnell gehen.
Wir haben den Namen der Anforderungsfunktion geändert, wenn jemand sehen/untersuchen kann, ob sie verlinkt ist mit:
https://github.com/moment/moment/pull/4213
https://github.com/moment/moment/pull/4214
Selbes Problem hier. Würde ein Downgrade das Problem beheben?
Das gleiche hier, mehrere Apps, an denen ich arbeite, sind kaputt.
@patricksteenks : ja. Beheben Sie dies in Ihrem package.json "moment": "2.18.1"
@ichernev hey, aber ich verwende das Gebietsschema ohne zu importieren. Verwenden Sie einfach import moment from 'moment'
und verwenden Sie so moment(date).locale('uk').format('ddd')
. Wie ich verstanden habe, haben Sie den Import in locale
geändert. Wie kann ich das in meinem Fall beheben?
Gleiches Problem beim Angular-CLI-Build-Projekt
Bestätigt.
VueJS 2 Webpack-Builds sind ebenfalls betroffen. Temp Fix ist wie von GautierT vorgeschlagen (downgrade momentjs)
package.json (Problem mit Moment-Zeitzone ab Moment 2.19)
"moment": "2.18.1",
"moment-timezone": "^0.5.13",
package.json (Problem im Allgemeinen)
"moment": "2.18.1"
Ich kann bestätigen, dass dies auch passiert!
ich kann bestätigen.
Paket.json
"moment": "2.18.1"
@renedx nur diese Zeile genug
Gleiches in einer Angular 4-Anwendung.
Gerade auf 2.18.1 herabgestuft (strenge Versionsnummer in package.json)
Wurde auch davon getroffen. Ich vermute, dass Webpack etwas Magie tut, um das dynamische "erforderlich" zu erkennen und es unter dem neuen Namen nicht mehr erkennen kann, und daher werden die Gebietsschemas nie in das Paket gebündelt.
(Übrigens, diese ganze Situation klingt sehr nach genau dem, wofür dynamische ES6-Importe da sind. Wir können träumen :-)
Ich verwende im Webpack von dieser Seite
new IgnorePlugin(/^\.\/locale$/, /moment$/)
Jetzt entfernen
Und in bedarf
const moment = require('moment');
Jetzt
const moment = require('moment').default;
Streng genommen denke ich, dass die Angular-Verbindung einfach daran liegt, dass die meisten Angular-Projekte Angular-CLI verwenden, die intern Webpack verwendet. Es kann jedoch mit einer bestimmten Webpack-Konfiguration in diesem Stapel zusammenhängen.
Es scheint jedoch ein ziemlich allgemeines Bündelungsproblem zu sein.
Tut Buße, tut Buße, der Weltuntergang ist da!
Hier gilt das gleiche.
import moment from "moment"
import "moment/locale/fr"
moment.locale("fr")
WARNING in ./node_modules/moment/src/lib/locale/locales.js
Module not found: Error: Can't resolve './locale' in '/Users/kud/Projects/_contexte/lois-webapp/node_modules/moment/src/lib/locale'
@ ./node_modules/moment/src/lib/locale/locales.js 65:16-60
@ ./node_modules/moment/src/lib/locale/locale.js
@ ./node_modules/moment/src/moment.js
@ ./src/index.js
Das gleiche hier - ich habe es mit einer Garnfunktion behoben, um die Standardeinstellungen eines Pakets zu überladen:
Platzieren Sie dies in Ihrem Hauptpaket.json (passen Sie "moment-timezone" an den Namen des Pakets an, das moment lädt, wenn Sie moment nicht direkt laden):
"resolutions": {
"moment-timezone/moment": "2.18.1"
},
genau wie ein 10km Asteroid .... das gleiche hier ...
Was ist die ETA für die Reparatur?
Okay, hier sind wir:
Bestätigter Fehler beim Ausführen der mit create-react-app CLI erstellten React-App.
Diese Herabstufung des Moments und der monent-timezone-Version wurde behoben.
npm install [email protected]
als temporäre Lösung, damit Sie package.json
mehrmals aktualisieren müssen. Dies wird wahrscheinlich bald behoben, dann können Sie npm i
tun.
@aheissenberger das hat mir das Leben gerettet, ich hatte das gleiche Problem mit rc-calendar, kann bestätigen Es funktioniert für Garn 1.2.0.
Gleiches Problem Webpack 3.6.0 + Moment 2.19.0. Funktioniert gut mit 2.18.1
Andere haben möglicherweise dasselbe Problem: Obwohl ich nicht auf 2.19.0 aktualisiert habe, hatte ich in meiner package.json ^2.18.1
. Ich habe es in 2.18.1
ohne ^
geändert und jetzt wird nichts höher als 2.18.1 installiert, bis wir wissen, dass 2.19.x sicher ist
@ichernev scheint sehr wahrscheinlich, dass die Umbenennung von 'require' diese weit verbreiteten Brüche verursacht. Ich vermute, dass, wenn Sie Module mit einer solchen Referenz benötigen, Webpack den Import nicht erkennen kann, da es die statische AST-Analyse verwendet, um Abhängigkeiten zu bestimmen.
Vielleicht könnten Sie einige Details zu dem React Native-Problem angeben, das behoben wurde, da es möglicherweise einen besseren Weg gibt, dieses ursprüngliche Problem zu umgehen?
In unserem Projekt verwenden wir yarn 1.0.2
, create-react-app
und diese Deps in package.json
"dependencies": {
"@types/history": "^4.5.0",
"@types/jest": "^20.0.6",
"@types/material-ui": "^0.18.2",
"@types/moment-timezone": "^0.5.0",
"@types/node": "^8.0.20",
"@types/react": "^16.0.10",
"@types/react-big-calendar": "^0.14.0",
"@types/react-dnd": "^2.0.33",
"@types/react-dnd-html5-backend": "^2.1.8",
"@types/react-dom": "^16.0.1",
"@types/react-modal": "^1.6.6",
"@types/react-redux": "^4.4.40",
"@types/react-router-dom": "^4.0.4",
"@types/react-router-redux": "^5.0.0",
"@types/redux": "^3.6.0",
"@types/redux-logger": "^3.0.0",
"@types/redux-promise-middleware": "^0.0.6",
"@types/validator": "6.3.0",
"lodash": "^4.17.4",
"material-ui": "0.19.2",
"material-ui-datatables": "^0.18.2",
"material-ui-fullscreen-dialog": "0.7.1",
"moment": "2.18.1",
"moment-timezone": "^0.5.13",
"react": "^15.6.1",
"react-barcode": "^1.2.0",
"react-big-calendar": "^0.15.0",
"react-bootstrap": "^0.31.0",
"react-bootstrap-table": "^3.4.2",
"react-bootstrap-time-picker": "^1.0.3",
"react-dnd": "^2.4.0",
"react-dnd-html5-backend": "^2.4.1",
"react-dock": "^0.2.4",
"react-dom": "^15.5.4",
"react-modal": "^1.7.7",
"react-pdf-js": "^2.0.5",
"react-phone-number-input": "^0.12.10",
"react-print": "^1.3.1",
"react-redux": "5.0.6",
"react-router-dom": "^4.1.1",
"react-router-redux": "next",
"react-tap-event-plugin": "^2.0.1",
"react-transition-group": "^1.1.1",
"redux": "3.7.2",
"redux-logger": "^3.0.1",
"redux-persist": "^4.8.0",
"redux-promise-middleware": "4.2.1",
"reselect": "^3.0.1",
"validator": "8.2.0",
"zxcvbn": "^4.4.2"
}
Obwohl wir "moment": "2.18.1"
, bekommen wir immer noch
Gibt es eine Problemumgehung für das Garn?
@ggsjyoon : Ich hatte eine ähnliche Situation (
+1
@ggsjyoon es könnte eine zusätzliche Anforderung von einem deiner Pakete geben (zB moment-timezone) - du kannst meinen Tipp https://github.com/moment/moment/issues/4216#issuecomment -335489518 verwenden, um dies mit Garn zu beheben
Am Ende bin ich darüber hinweggekommen, indem ich geändert habe:
import * as moment from 'moment';
zu:
import * as moment from 'moment/moment';
+1
@morrisonbrett Das funktioniert. Danke
Die Bestätigung des Vorschlags von
@maggiepint Wenn @morrisonbrett funktioniert hat , denke ich, dass #4213 möglicherweise nicht das Problem ist. 2.19 führte eine weitere neue Änderung ein, das Modulfeld in package.json - dh früher verwendete Webpack die transpilierte Version.
Das Einschalten von ES6 für React Native verursachte die meisten Probleme, die #4187 blockierten, und #3904 (nur für eine ganze Weile im Develop-Zweig) führte für alle Webpack-Benutzer zu derselben Änderung.
@tqc - es ist wahrscheinlich beides. @thelarkinn hat bereits bestätigt, dass Webpack die erforderliche Dynamik nicht möchte.
Gleiches Problem hier, irgendwelche Updates?
@maggiepint Ja, mir wurde gleich nach dem Schreiben dieses Kommentars klar, dass der Fehler am Ende des Threads am Anfang nicht ganz derselbe war. Die ES6-Seite der Dinge könnte mit etwas wie module.exports = require(‘moment’).default
behoben werden, aber ich bin mir nicht sicher, ob dies noch Baumzittern zulässt, und Knotenharmonie mag es nicht, Import und Anforderung zu mischen.
per Webpack-Aliasing gelöst:
resolve: {
alias: {
'moment$': 'moment/moment',
},
},
Kann jemand alle Bits aus 2.19 herausfinden, die das Webpack kaputt gemacht haben, einen minimalen PR (basierend auf 2.19.0) vorschlagen, der die "schlechten" Teile rückgängig macht, und wir werden erwägen, es für 2.19.1 zusammenzuführen.
"Ich auch" zum 1000-mal zu sagen, bringt nicht viel auf den Tisch.
Die Lösung von @morrisonbrett funktioniert import * as moment from 'moment/moment';
Ich kann das gleiche Problem mit Angular-CLI v1.4.4 bestätigen. Ich war zunächst überrascht, als ich den Fehler mit momentjs sah, da mein Projekt ihn nicht verwendet, aber nach der Untersuchung habe ich seine Injektion auf WebPack zurückverfolgt.
Hier ist meine Warnmeldung beim Erstellen:
WARNING in ./node_modules/moment/src/lib/locale/locales.js
Module not found: Error: Can't resolve './locale' in '/Users/scott/Development/web-admin/node_modules/moment/src/lib/locale'
resolve './locale' in '/Users/scott/Development/web-admin/node_modules/moment/src/lib/locale'
using description file: /Users/scott/Development/web-admin/node_modules/moment/package.json (relative path: ./src/lib/locale)
Field 'browser' doesn't contain a valid alias configuration
after using description file: /Users/scott/Development/web-admin/node_modules/moment/package.json (relative path: ./src/lib/locale)
using description file: /Users/scott/Development/web-admin/node_modules/moment/package.json (relative path: ./src/lib/locale/locale)
as directory
/Users/scott/Development/web-admin/node_modules/moment/src/lib/locale/locale doesn't exist
[/Users/scott/Development/web-admin/node_modules/moment/src/lib/locale/locale]
@ ./node_modules/moment/src/lib/locale/locales.js 65:16-60
@ ./node_modules/moment/src/lib/locale/locale.js
@ ./node_modules/moment/src/moment.js
@ ./src/app/admin-analytics/admin-analytics.component.ts
@ ./src/$$_gendir/app/app.module.ngfactory.ts
@ ./src/main.ts
@ multi ./src/main.ts
Ich habe auch die Methode import * as moment from 'moment/moment';
ausprobiert, aber kein Glück für meinen Fall.
Hey @kud , @AleshaOleg – falls du immer noch versuchst, Gebietsschemas zu importieren:
anstatt:
import 'moment/locale/*
Versuchen:
import 'moment/src/locale/*'
Kämpfe hier mit dem gleichen Problem...
–––
@AleshaOleg : In Ihrem Anwendungsfall denke ich, dass es sein könnte:
import moment from 'moment'
import 'moment/src/locale/uk'
und dann ruf einfach moment(date).format('ddd')
Danke @dianco !
Ich habe dieses Problem beim Aktualisieren auf 2.19.0
gelöst, indem ich den Code, der versucht, Gebietsschemas zu laden, vollständig deaktiviert habe.
({
test: /moment\/src\/lib\/locale\/locales.js$/,
enforce: 'pre',
use: {
loader: 'imports-loader',
options: {
module: '>undefined', // this disables the if
require: '>false' // this prevents webpack from trying to parse the requires
}
}
})
Ich habe dann manuell import 'moment/src/locale/ja'
, import 'moment/src/locale/pt-br'
usw. hinzugefügt, wie es von meiner Anwendung benötigt wird, anstatt alle Gebietsschemas zu laden. Wenn Sie kreativ sind, können Sie stattdessen dynamische import()
s verwenden, um nur die Sprache zu laden, die Ihre Anwendung benötigt.
Es ist sehr wichtig , dass Sie in diesem Fall nicht import 'moment/locale/foo'
, sondern import 'moment/src/locale/foo'
tun. Aufgrund der Art und Weise, wie die Gebietsschemadateien versuchen, auf moment
selbst zu verweisen, bündeln sie stattdessen eine zweite Kopie von moment
(diesmal das UMD-Build im Gegensatz zum ESM-Build) und das wird in wieder alle Gebietsschemas laden.
Ich hoffe, das hilft jemandem (Optionen 1 und 2 aus dem obigen Kommentar, danke an @patsissons ):
-Wenn Sie keine Module haben, die moment.js laden, Ihre App jedoch dies tut, wechseln Sie einfach zu einer älteren Version
-Wenn Sie Module haben, die auch moment.js in Abhängigkeiten haben, hilft Ihnen das oben genannte nicht, Sie müssen Ihre Webpack-Konfiguration ändern:
{...
beschließen: {
...
alias: {
'Moment$': 'Moment/Moment',
}
}
}
-Aber wenn Sie React-Create-App verwenden (wie ich) und Sie so schnell wie möglich einen funktionierenden Build haben müssen, die einzige Option für Sie, um 'npm eject' auszuführen, haben Sie auf diese Weise Zugriff auf die Webpack-Konfiguration und zweitens Option wird für Sie verfügbar sein.
Es tut mir also leid, aber die einzige Methode, die hier funktionierte, war die von @patsissons . https://github.com/moment/moment/issues/4216#issuecomment -335637520
Immer noch
import moment from "moment"
import "moment/locale/fr"
moment.locale("fr")
aber im Webpack hinzufügen
resolve: {
alias: {
'moment$': 'moment/moment',
}
},
Aus irgendeinem Grund ignorierte Garn meine Einstellung "Auflösungen" von package.json.
Eine hackige Möglichkeit, das Problem zu beheben, wenn Sie Moment-Timezone verwenden, besteht darin, das Garn.lock zu bearbeiten
[email protected]:
version "2.18.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f"
"moment@>= 2.9.0":
version "2.18.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f"
Wir warten auf Fix 2.19.1....
Könnte hier jemand beschreiben, was das eigentliche Problem ist? Ist es einfach, dass Webpack das Alias-require() nicht identifiziert?
@TomMettam 2.19.0 wies Webpack auf den es6-Code in moment/src/moment hin, der nicht ganz dieselbe Schnittstelle wie moment/moment exportiert.
Darüber hinaus verhindert das Alias-Requirement, dass Webpack alle Dateien verpackt, die möglicherweise dynamisch angefordert werden könnten. Das manuelle Importieren der Locale-Dateien würde funktionieren, außer dass die offensichtliche Wahl des Importierens von moment/locale sie in eine andere Instanz von moment lädt als die, die Sie tatsächlich verwenden.
Und wenn das alles zu einfach ist, gibt es Unterschiede im Verhalten verschiedener Versionen von Garn/npm - ich verwende zufällig eine Version von npm, die jede Instanz des Pakets verwendet, die sich im Root-App-Ordner node_modules befindet, aber andere Versionen machen Es ist schwieriger, das verwendete Paket zu überschreiben.
Wer hat entschieden, dass das Ändern der Exportsignatur in einer Nebenversion eine gute Idee ist?
Beachten Sie, dass dies auch Bibliotheken von Drittanbietern unterbricht, die sich auf den Moment verlassen
+1
Es ist nicht akzeptabel für ein kleineres Upgrade.
Ich verstehe die Idee dahinter, aber seien Sie bitte strenger in Bezug auf Semver.
@darkalor es war nicht beabsichtigt - die fragliche
@darkalor @kud - Rückschritte passieren. Bitte versuchen Sie, konstruktiv zu sein; jedem ist bewusst, dass dies nicht hätte passieren dürfen und schimpfen hilft niemandem.
@TomMettam Ja, es passiert, aber wenn es passiert, können Sie damit umgehen, und damit meine ich, Sie könnten es als Major und nicht als Minor aktualisieren. Das ist alles. Ich gebe niemandem die Schuld, ich gebe der Situation die Schuld, dass es in diesem Fall ziemlich falsch ist, wenn jemand denkt "Oh, ok, ich kann ein Upgrade durchführen, da es sich nur um eine Minderjährige handelt". ;)
Ich schätze all die Arbeit, die im Moment geleistet wurde, aber ich spreche nur über die instabile Situation.
Ich beleidige niemanden, tut mir leid.
@kud nicht, wenn Sie die Versionsnummer auswählen müssen, bevor Sie wissen, dass die Regression existiert. Die Komplexität, die erforderlich ist, um die Anzahl der Umgebungen zu unterstützen, die moment tut, ist ziemlich beeindruckend.
@tqc aber jetzt weißt du es, das ist die Sache. Wie bereits von @TomMettam gesagt , passiert es.
Das Entfernen oder/und Hinzufügen von Tags ist möglich.
Wie auch immer, ich werde hier nicht mehr spammen, danke für die Problemumgehung; Ich habe im Changelog eine Notiz für andere Personen hinzugefügt, die dieses Problem nicht verfolgen: https://gist.github.com/ichernev/5f3f4eb02761b4f765a0cccf02cec603#gistcomment -2226628
Ich wünsche ihnen einen wunderbaren Tag. :)
Ich verwende Garn als Paketmanager. Aus irgendeinem Grund wurde meine Datei "Garn.lock" nicht aktualisiert, um die Änderung widerzuspiegeln, die ich in meiner Datei package.json vorgenommen habe. meine Einstellungen wie @daniesy sagte. Das Problem war Moment-Zeitzone in meiner Garn.lock-Datei war immer noch abhängig von der Moment-Version '^2.18.1'.
Um es zu beheben, habe ich einen Garn-Cache sauber ausgeführt :
yarn cache clean
Dann :
yarn install
Hoffentlich sollte dies Ihre Garn.lock- Datei mit etwas in der Richtung neu generieren:
[email protected]:
version "0.5.13"
resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.13.tgz#99ce5c7d827262eb0f1f702044177f60745d7b90"
dependencies:
moment ">= 2.9.0"
[email protected], [email protected], "moment@>= 2.9.0", moment@^2.17.1:
version "2.18.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f"
Überprüfen Sie in jedem Fall, ob Ihre Garnsperre nicht versucht, eine Momentversion größer als 2.18.1 in ein Modul aufzunehmen, insbesondere Moment-Zeitzone und Moment.
Ich denke, wir haben eine Lösung: https://github.com/moment/moment/pull/4232
Das Beste daran - ich denke, das wird sowohl für Webpack als auch für nativ reagieren - keine Traurigkeit!
Ich habe in Webpack getestet, aber würde jemand mit einem nativen Test reagieren? Beachten Sie, dass Sie grunt release ausführen müssen, um die Dateien zu erstellen, bevor Sie mit einer npm-Verknüpfung testen können.
@maggiepint -
2.19.1 ist raus, probiere es aus
Funktioniert bei mir mit Webkit.
Danke @ichernev und alle Beteiligten!
@ichernev : 2.19.1 funktioniert für mich.
Reagiere 16.
Erstellen-Reagieren-App.
Nicht ausgeworfen
Moment geladen wie folgt:
import moment from 'moment'
import 'moment/locale/fr'
Danke für die Fehlerbehebung. 👍
Habe gerade einen weiteren VSTS-Build mit angle-cli/webpack gefeuert und in der Umgebung neu bereitgestellt
Alles wieder normal
Danke
Auch ich kann bestätigen, dass dieses Problem für Angular-CLI v1.4.4 behoben wurde. Danke schön!
funktioniert mit typescript/webpack/karma/phantomjs. Danke für die Fehlerbehebung!
Damit es funktioniert, habe ich nur die Locale-Datei vor dem Moment eingefügt.
import 'moment/locale/de';
import moment from 'moment';
und später tat
moment.locale("de");
scheint noch in "Version": "2.22.2" vorhanden zu sein?
Ich verwende auch 2.22.2. das problem besteht immer noch
Ich verwende 2.22.2 und sehe das gleiche Problem.
Wie oben. Gleiches Problem, gleiche Version.
Reagieren Sie native und sehen Sie diesen Fehler für einen Release-Build:
09-04 13:47:38.684 26530 26554 E ReactNativeJS: Requiring unknown module "./locale/de".
09-04 13:47:38.693 26530 26555 E AndroidRuntime: FATAL EXCEPTION: mqt_native_modules
09-04 13:47:38.693 26530 26555 E AndroidRuntime: Process: com.integreat, PID: 26530
09-04 13:47:38.693 26530 26555 E AndroidRuntime: com.facebook.react.common.JavascriptException: Requiring unknown module "./locale/de"., stack:
09-04 13:47:38.693 26530 26555 E AndroidRuntime: c<strong i="6">@2</strong>:649
09-04 13:47:38.693 26530 26555 E AndroidRuntime: i<strong i="7">@2</strong>:394
09-04 13:47:38.693 26530 26555 E AndroidRuntime: t<strong i="8">@2</strong>:324
09-04 13:47:38.693 26530 26555 E AndroidRuntime: vt<strong i="9">@882</strong>:16755
09-04 13:47:38.693 26530 26555 E AndroidRuntime: Mt<strong i="10">@882</strong>:17781
09-04 13:47:38.693 26530 26555 E AndroidRuntime: Mn<strong i="11">@882</strong>:29014
09-04 13:47:38.693 26530 26555 E AndroidRuntime: value<strong i="12">@1006</strong>:1442
09-04 13:47:38.693 26530 26555 E AndroidRuntime: qn<strong i="13">@108</strong>:40634
09-04 13:47:38.693 26530 26555 E AndroidRuntime: tr<strong i="14">@108</strong>:46334
09-04 13:47:38.693 26530 26555 E AndroidRuntime: Nr<strong i="15">@108</strong>:56528
09-04 13:47:38.693 26530 26555 E AndroidRuntime: Ur<strong i="16">@108</strong>:56960
09-04 13:47:38.693 26530 26555 E AndroidRuntime: ui<strong i="17">@108</strong>:61804
09-04 13:47:38.693 26530 26555 E AndroidRuntime: oi<strong i="18">@108</strong>:61224
09-04 13:47:38.693 26530 26555 E AndroidRuntime: Ue<strong i="19">@108</strong>:68050
09-04 13:47:38.693 26530 26555 E AndroidRuntime: Ie<strong i="20">@108</strong>:14248
09-04 13:47:38.693 26530 26555 E AndroidRuntime: We<strong i="21">@108</strong>:14421
09-04 13:47:38.693 26530 26555 E AndroidRuntime: receiveTouches<strong i="22">@108</strong>:15235
09-04 13:47:38.693 26530 26555 E AndroidRuntime: value<strong i="23">@18</strong>:3352
09-04 13:47:38.693 26530 26555 E AndroidRuntime: <unknown><strong i="24">@18</strong>:935
09-04 13:47:38.693 26530 26555 E AndroidRuntime: value<strong i="25">@18</strong>:2621
09-04 13:47:38.693 26530 26555 E AndroidRuntime: value<strong i="26">@18</strong>:907
2.22.1 funktioniert
funktioniert bei mir immer noch nicht
Ich bekomme 2.18.1 auch nicht zum Laufen
2.22.1 ftw lol
Bemerkte auch eine Regression in v2.22.2. Rollback auf 2.22.1 hat es für mich behoben.
Hallo allerseits,
Hatte das gleiche Problem (mit Webpack in Laravel). Dies ist nicht ideal, aber eine schnelle Lösung, die für mich funktioniert hat, besteht darin, den Ordner "locale" des Repositorys neben die Datei moment.js oder moment-with-locale.js zu kopieren.
Läuft auch auf v2.22.2
.
Damit es funktioniert, habe ich nur die Locale-Datei vor dem Moment eingefügt.
import 'moment/locale/de'; import moment from 'moment';
und später tat
moment.locale("de");
@ mj1856 ist es angemessen, dieses Problem erneut zu öffnen oder sollten wir ein neues / neues erstellen? Das sehe ich auch wieder. Ein Rollback auf 2.22.1 hat es in meinem Fall nicht behoben und ich musste @patsissons Fix verwenden , um Webpack wieder glücklich zu machen.
gleich
Ich habe allowSyntheticDefaultImports verwendet, wie im Dokument hier erklärt: https://momentjs.com/docs/#/use -it/typescript/ und es hat den Fehler Cannot find module "./locale"
für mich behoben. Beachten Sie, dass // @ts-ignore
über dem Import auch in meiner IDE benötigt wurde.
gleiche Frage, moment:'2.18.1'
Wird dies immer noch empfohlen: import moment from "moment/min/moment-with-locales";
?
b/c Ich bekomme denselben (?) Fehler mit [email protected]
und CRA:
./node_modules/moment/min/moment-with-locales.js
Module not found: Can't resolve './locale' in '/...myproject/node_modules/moment/min'
Für all diese Internet-Passanten ist hier eine Möglichkeit, das Problem zu beheben, wenn Sie mit Rollup erstellen:
Angenommen, Sie verwenden rollup-plugin-node-resolve
:
import commonjs from "rollup-plugin-commonjs";
import nodeResolve from "rollup-plugin-node-resolve";
export default {
// your config...
plugins: [
nodeResolve({
mainFields: ["module", "jsnext:main", "main"],
preferBuiltins: false,
}),
commonjs({
include: "node_modules/**",
}),
]
}
moment
hat einen package.json
Eintrag für jsnext:main
den wir hier nutzen können. um die Gebietsschemas für uns während des Build-Prozesses einzubeziehen. Ihre Bundle-Größe wird zunehmen, aber die Konsolenfehler werden verhindert 😅
Ich habe das gleiche Problem mit Momentversion 2.24.0 in meiner React-Anwendung. Ich denke, dieses Problem ist noch nicht gelöst.
Ich habe das gleiche Problem mit Momentversion 2.24.0 in meiner React-Anwendung. Ich denke, dieses Problem ist noch nicht gelöst.
Bestätigen. "moment": "2.24.0". 2.18.1 das Problem nicht lösen. Knoten v12.16.0
Das gleiche hier, mit 2.24.0
für mein Preact-Projekt.
Dieses Problem tritt immer noch auf, bitte helfen Sie!
Für mich kaputt: "moment": "^2.24.0" (Auflösung zu 2.25.0)
Nicht kaputt: "Moment": "2.24.0"
Wenn Sie Garn verwenden, fügen Sie den Auflösungsblock hinzu, um Versionen der Unterabhängigkeit zu überschreiben:
"resolutions": {
"moment": "2.24.0"
}
Verwenden Sie "moment": "2.24.0"
und wie von @rilyu vorgeschlagen, verwenden Sie die Auflösung. Hat bei mir funktioniert.
Das Zurücksetzen auf "2.24.0" und das Entfernen des "^" hat bei mir funktioniert. Sieht so aus, als ob ihre neueste Version letzte Nacht geschoben wurde und sie abwirft.
Problem mit "moment": "^2.24.0",
.
Uncaught Error: Cannot find module './locale'
at
Gleicher Fehler. Gelöst mit @enewhuis- Lösung. Danke!
Gleicher Fehler. Gelöst mit @enewhuis- Lösung. Danke, Mann.
Problem mit Lösung @enewhuis und @rilyu behoben. Danke.
Gleicher Fehler. @enewhuis Lösung zur Rettung
Für mich kaputt: "moment": "^2.24.0" (Auflösung zu 2.25.0)
Nicht kaputt: "Moment": "2.24.0"
Danke Mann, ich kämpfe den ganzen Tag damit
Gleicher Fehler und gleiches Fix hier. Ich habe Moment-Zeitzone verwendet.
Vor:
"moment-timezone": "^0.5.28",
Nach:
"moment": "2.24.0",
"moment-timezone": "^0.5.28",
Gleicher Fehler und gleiches Fix hier. Ich habe Moment-Zeitzone verwendet.
Vor:
"moment-timezone": "^0.5.28",
Nach:
"moment": "2.24.0", "moment-timezone": "^0.5.28",
Funktioniert bei mir nicht mit -
"moment": "2.24.0",
"moment-timezone": "0.5.28",
Der obige Fix funktioniert bei mir nicht. Knoten v12.6.0, Garn v1.22.4, React-Scripts-ts
Hat bei uns gearbeitet mit
"resolutions": {
"moment": "2.24.0"
},
und
"moment": "2.24.0",
"moment-timezone": "0.5.28",
mit garn
Ohne den Auflösungsblock ging es nicht.
Ja, ich kann bestätigen, dass das Hinzufügen des resolutions
Blocks für mich funktioniert hat. Ich habe allerdings keine Ahnung warum...
Danke @mtogstad !
@mtogstad- Lösung funktioniert!
Ich verstehe nicht, wie dieser Fehler zufällig auftauchen und meine Reaktions-App zerstören kann
@bodyfarmer können Sie bitte Schritte aufschreiben, wie Sie das Problem lösen?
Ich habe das gleiche Problem mit der React-App.
@hasanmehmood In meinem Fall hat es gereicht, um eine Herabstufung der momentanen Abhängigkeiten auf diese Weise in CMD vorzunehmen:
npm install [email protected]
Hoffe das funktioniert auch bei dir.
Hallo Leute!
Ich hatte das gleiche Problem aus den letzten Stunden und habe es schließlich durch Ändern der Momentversion gelöst.
In den obigen Kommentaren sah ich die endgültige Lösung.
Grund:
_Moment Release der neuen Version vor 17 Stunden von 2.24.0 bis 2.25.0_
Lösung:
Schritt 1: Ändern Sie die Versionen
Schritt 2: Wenn Sie Garn verwenden, fügen Sie bitte Auflösungen in Ihrer package.json-Datei wie folgt hinzu
"Abhängigkeiten" {
"moment": "2.24.0",
"moment-timezone": "^0.5.28"
},
"Auflösungen": {
"moment": "2.24.0"
},
Danke schön.
Danke, @jolalla , ich habe zuerst versucht, die Version herunterzustufen, aber es hat bei mir nicht funktioniert. Schließlich zeigte das Hinzufügen des Auflösungsblocks etwas Magie :)
Für andere, die mit ihrer React-App vor einem ähnlichen Problem stehen. Sie können die folgenden 2 Schritte ausführen, um das Problem zu beheben.
In Abhängigkeiten ersetzen
"moment": "^2.24.0",
mit
"moment": "2.24.0",
Und fügen Sie den Auflösungsblock in package.json hinzu
"resolutions": {
"moment": "2.24.0"
}
Warum ist dieses Thema geschlossen!?!??!?
Guter Zeitpunkt, um auf Luxon umzusteigen, was ich für ein Projekt getan habe, das eine geringe Momentnutzung hatte.
Habe das gleiche Problem
"Auflösungen": {
"moment": "2.24.0"
}
mein Problem lösen.
Danke.
Kann ich noch etwas versuchen? "moment": "2.24.0"
, und
"resolutions": {
"moment": "2.24.0"
}
reparieren es nicht für mich. Dies ist für eine Heroku-Bereitstellung. Alle Ideen werden geschätzt.
Wenn zufällig jemand anderes ein Monorepo hat (und/oder Arbeitsbereiche in package.json verwendet), funktioniert der Fix 'resolutions' zur Verwendung der vorherigen Version 2.24.0 nur, wenn er in der root-Ebene package.json angewendet wird. In unserem Fall mussten wir Folgendes tun:
{ „Auflösungen“: { „**/Moment“: „2.24.0“ } }.
Ich hoffe wirklich, dass die Version 2.25 so schnell wie möglich behoben wird!
Wenn Sie Garn verwenden, fügen Sie den Auflösungsblock hinzu, um Versionen der Unterabhängigkeit zu überschreiben:
"resolutions": { "moment": "2.24.0" }
Ich beschäftige mich seit einer Stunde damit. Entfernen von ^
hilft.
Für Leute, die create-react-app verwenden und CRA nicht auswerfen möchten, können Sie Folgendes installieren:
Erstellen Sie dann ein config-overrides.js
im Stammverzeichnis Ihres Projekts zum weiteren Überschreiben.
module.exports = function override(config, env) {
// do stuff with the webpack config...
return config;
};
Bearbeiten Sie Ihre package.json:
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
Da ich Ameisendesign verwende, sieht mein config-overrides.js
aus:
const { override, fixBabelImports } = require("customize-cra");
const webpack = require("webpack");
const fixMomentJs = (config) => {
config.plugins.push(
new webpack.ContextReplacementPlugin(/^\.\/locale$/, (context) => {
if (!/\/moment\//.test(context.context)) {
return;
}
// context needs to be modified in place
Object.assign(context, {
// include locales
regExp: /^\.\/(fr|en)/,
// point to the locale data folder relative to moment's src/lib/locale
request: "../../locale",
});
})
);
return config;
};
module.exports = override(
fixMomentJs,
fixBabelImports("import", {
libraryName: "antd",
libraryDirectory: "es",
style: "css",
})
);
Aber deines wird einfacher sein, etwa so, denke ich:
module.exports = function override(config, env) {
config.plugins.push(
new webpack.ContextReplacementPlugin(/^\.\/locale$/, (context) => {
if (!/\/moment\//.test(context.context)) {
return;
}
// context needs to be modified in place
Object.assign(context, {
// include locales
regExp: /^\.\/(fr|en)/,
// point to the locale data folder relative to moment's src/lib/locale
request: "../../locale",
});
})
);
return config;
};
Danke, @jolalla , ich habe zuerst versucht, die Version herunterzustufen, aber es hat bei mir nicht funktioniert. Schließlich zeigte das Hinzufügen des Auflösungsblocks etwas Magie :)
Für andere, die mit ihrer React-App vor einem ähnlichen Problem stehen. Sie können die folgenden 2 Schritte ausführen, um das Problem zu beheben.
In Abhängigkeiten ersetzen
"moment": "^2.24.0",
mit
"moment": "2.24.0",
Und fügen Sie den Auflösungsblock in package.json hinzu
"resolutions": { "moment": "2.24.0" }
Funktioniert bei mir. Danke
@hasanmehmood bei mir hat es funktioniert, danke Mann
Danke, @jolalla , ich habe zuerst versucht, die Version herunterzustufen, aber es hat bei mir nicht funktioniert. Schließlich zeigte das Hinzufügen des Auflösungsblocks etwas Magie :)
Für andere, die mit ihrer React-App vor einem ähnlichen Problem stehen. Sie können die folgenden 2 Schritte ausführen, um das Problem zu beheben.
In Abhängigkeiten ersetzen
"moment": "^2.24.0",
mit
"moment": "2.24.0",
Und fügen Sie den Auflösungsblock in package.json hinzu
"resolutions": { "moment": "2.24.0" }
Funktioniert bei mir auch! Danke schön!! :D
Mache dies seit Stunden auf meiner eckigen 8-App mit npm.
"devDependencies": {...},"resolutions": {
"moment": "2.24.0"
}
zu package.jsonrm -rf node_modules package-lock.json && yarn
Ich bin ziemlich verzweifelt... Ich benutze Moment 2.25.1 und ändere die "devDependencies": {...},"resolutions": { "moment": "2.25.1" } wie oben... nicht Arbeiten
ich verwende npm. Ich bin ein Neuling in Reagieren wo ist devDependencies?
Ich habe das geändert, aber es funktioniert immer noch nicht
Ich verwende Version "2.25.1" und es passiert immer noch!
@m4mariaoni - das liegt daran, dass du ohne --save-dev
installiert hast, also
Wenn dieses Problem nach dem Sperren von Moment auf 2.24.0 immer noch auftritt, nuke den Moment-Ordner von node_modules und installiere deine Pakete mit npm install --save
Danke, @jolalla , ich habe zuerst versucht, die Version herunterzustufen, aber es hat bei mir nicht funktioniert. Schließlich zeigte das Hinzufügen des Auflösungsblocks etwas Magie :)
Für andere, die mit ihrer React-App vor einem ähnlichen Problem stehen. Sie können die folgenden 2 Schritte ausführen, um das Problem zu beheben.
In Abhängigkeiten ersetzen
"moment": "^2.24.0",
mit
"moment": "2.24.0",
Und fügen Sie den Auflösungsblock in package.json hinzu
"Auflösungen": {
"moment": "2.24.0"
}
Funktioniert bei mir auch! Danke schön!! :Ddenkt!
Danke, @jolalla , ich habe zuerst versucht, die Version herunterzustufen, aber es hat bei mir nicht funktioniert. Schließlich zeigte das Hinzufügen des Auflösungsblocks etwas Magie :)
Für andere, die mit ihrer React-App vor einem ähnlichen Problem stehen. Sie können die folgenden 2 Schritte ausführen, um das Problem zu beheben.
In Abhängigkeiten ersetzen
"moment": "^2.24.0",
mit
"moment": "2.24.0",
Und fügen Sie den Auflösungsblock in package.json hinzu
"resolutions": { "moment": "2.24.0" }
Ersetzen
"moment": "^2.24.0",
mit
"moment": "2.24.0",
funktioniert bei mir! Das Übliche,
rm -rf package-lock.json && node_modules
Trotz aller oben genannten Maßnahmen funktioniert es immer noch nicht...
Das ist frustrierend
Zuvor erstellte Repositorys wurden Moment 2.24.0 mit React verwendet und es funktioniert immer noch, aber Moment2.24.0 jetzt installieren, funktioniert nicht.... (Ich habe auch alle oben genannten Maßnahmen ausprobiert)
Was ist die Ursache?
Ich könnte mir vorstellen, dass Sie irgendwo in einem package.json @wlsdud2194 eine ^2.24.0 anstelle von 2.24.0 haben?
Ich nicht, und trotzdem kommt der Fehler immer wieder. Es ist komisch
Moment-Version ist 2.24.0
in einer package.json anstelle von ^2.24.0
seit der Installation.
Ich habe diesen Prozess befolgt, eine der oben genannten Maßnahmen
- Auflösungsblock hinzufügen
- Entfernen Sie das Verzeichnis
node_modules
und installieren Sie das Paket von Garn neu.
funktioniert bei mir, weiß aber nicht warum...😂
Vielen Dank für Ihr Interesse :) @agrohs
Musste von ^2.25.1
auf 2.24.0
downgraden, um das Problem zu beheben
Ich nicht, und trotzdem kommt der Fehler immer wieder. Es ist komisch
Versuchen Sie, npm ls moment
zu sehen, ob ein anderes Modul auch den Moment verwendet
Und fügen Sie den Auflösungsblock in package.json hinzu
"Auflösungen": {"Moment": "2.24.0"}
Entfernen Sie das Verzeichnis node_modules und installieren Sie das Paket von Garn neu.
rm -rf package-lock.json && node_modules
Kontakt: Herr Liu Tel: 18908205973
Fax: 028-86676917
E-Mail: [email protected]
Firmenname: Chengdu Shouzhi Technology Co., Ltd. Firmenwebsite: www.szdma.com
Adresse: Yinhai-Gebäude, Nr. 162, Binjiang East Road, Chengdu
Chengdu Shouzhi Technology Co., Ltd. wurde 2010 gegründet. Es ist ein professionelles Unternehmen für die Entwicklung von Softwareanpassungen für kleine und mittlere Unternehmen in Chengdu. Das Unternehmen bedient hauptsächlich kleine und mittlere Unternehmen. Es bietet den Bau von lokalen Netzwerken und Websites an Konstruktion, Software-Anpassungslösungen usw. und bietet manuelle Dienstleistungen Eine vollständige Palette von Dienstleistungen für die Computerbranche. Das Unternehmen hält sich an den Grundsatz "integrität-basiert, serviceorientiert", um das Firmenimage zu unterstreichen; durch unseren unermüdlichen Einsatz bieten wir unseren Kunden qualitativ hochwertige Dienstleistungen.
Wir erhalten Webpack Error: Cannot find module "./locale"
Fehler. Wir verwenden in unserem Projekt das Paket 'react-redux-i18n', das von 'react-i18nify' und das wiederum von 'moment' abhängig ist. Intern ist 'moment' so konfiguriert, dass die neueste Version verwendet wird, die diesen Fehler verursacht.
In Abhängigkeiten
"reagieren": "^16.8.1",
"moment": "2.24.0",
"moment-timezone": "^0.5.28",
"react-moment-proptypes": "^1.5.0",
"react-redux-i18n": "^1.9.3",
"react-redux": "^6.0.0",
Jede Hilfe wäre sehr dankbar.
Der neueste Patch 2.25.3 scheint das Problem behoben zu haben, aktualisieren Sie die momentjs-Version auf: "moment": "^2.25.3"
in package.json
Entfernen Sie den Ordner node_modules und führen Sie yarn install
oder npm install
aus.
Für diejenigen, die im Moment etwas Vertrauen verloren haben und nicht möchten, dass ihre Apps in Zukunft von diesem Problem komplett abbrechen - ich habe eine mittelgroße Codebasis ohne großen Aufwand auf Luxon umgestellt.
Danke Leute...
Ich habe die Version auf 24.0 geändert und die "Auflösungen": { "moment": "2.24.0" } hinzugefügt und npm install ausgeführt
Dann schien es wieder zu funktionieren (übrigens mit React).
Beifall!
Der neueste Patch 2.25.3 scheint das Problem behoben zu haben, aktualisieren Sie die momentjs-Version auf:
"moment": "^2.25.3"
in package.json
Entfernen Sie den Ordner node_modules und führen Sieyarn install
odernpm install
aus.
Danke @jasontll , bei mir
Keine dieser Lösungen hat heute bei mir funktioniert.
Mache das schon seit Stunden in meiner React App
mit npm.1. I updated from moment 2.17 to 2.24 2. I added the resolutions as adviced above - `"devDependencies": {...},"resolutions": { "moment": "2.24.0" }` to package.json 3. Changed to yarn by doing the following. `rm -rf node_modules package-lock.json && yarn` Thanks a lot guys
es hat auch bei Jungs funktioniert, vielen Dank :-)
Ich laufe auch in dieser Not. Ich habe es mit der neuesten Version von "moment": "^2.26.0"
behoben
Hilfreichster Kommentar
@patricksteenks : ja. Beheben Sie dies in Ihrem package.json
"moment": "2.18.1"