WARNING in ./node_modules/moment/src/lib/locale/locales.js
Module not found: Error: Can't resolve './locale' in 'D:\project-fed\ecloud\client-web\node_modules\moment\src\lib\locale'
Ich habe festgestellt, dass mit der Funktion unten etwas nicht stimmt
function loadLocale(name) {
var oldLocale = null;
// TODO: Find a better way to register and load all the locales in Node
if (!locales[name] && (typeof module !== 'undefined') &&
module && module.exports) {
try {
oldLocale = globalLocale._abbr;
var aliasedRequire = require;
aliasedRequire('./locale/' + name);
getSetGlobalLocale(oldLocale);
} catch (e) {}
}
return locales[name];
}
aliasedRequire('./locale/' + name);
, sollte es ../locale/
?
Ich sehe dieselbe Warnung, wenn ich Webpack verwende, um den Moment zu bündeln. Irgendeine Idee, wann dieser Fehler eingeführt wurde?
Ich habe die gleiche Warnung mit angle-cli eine Lösung?
Habe das gleiche Problem. Kennen Sie Workarounds/Fixes?
Gleiches Problem - sieht aus wie ein Pfadproblem mit './locale' vs '../locale'. Untersucht jemand diesen Fehler?
https://github.com/moment/moment/issues/2979
Sieht so aus, als ob es seit Jahren so ist, warum sie es nicht reparieren werden, keine Ahnung. Ich bin gerade auch darauf gestoßen, als ich versucht habe,
Meine Problemumgehung , um
...
resolve: {
alias: {
moment$: path.resolve(root_dir, "node_modules/moment/moment.js")
}
}
Das obige hat bei mir nicht funktioniert, aber das Befolgen dieses Tutorials hat mir geholfen, es zu beheben.
Gibt es dazu etwas Neues? Ich benutze Laravel Mix ... das gleiche hier ...
Das tue ich
import * as moment from 'moment';
und das funktioniert.
Das tue ich
import * as moment from 'moment';
und das funktioniert.
im Webpack? Ich überlege, wie man das mit Laravel Mix macht .
@marcelogarbin oh sorry, ich habe mich seit Version 4 nicht mehr mit Laravel angelegt. Ich entschuldige mich, aber ich weiß nicht, wie ich es mit Laravel-Mix zum Laufen bringen soll.
Importieren Sie einfach wie unten und es funktioniert:
Moment aus 'Moment/Moment' importieren;
Die Lösung von @yaasinhamidi hat es geschafft
Das tue ich
import * as moment from 'moment';
und das funktioniert.
Wo soll diese Zeile stehen?
Das gleiche Problem tritt zum ersten Mal nach dem Update auf 2.25.0 auf. Ich verwende auch Laravel Mix (Anmerkung, ich hatte dieses Problem bei keiner früheren Version).
Meine Problemumgehung ist, zu 2.24.0 zurückzukehren
Ich habe das gleiche Problem nach dem Update
Bis es behoben ist, behebt ein Rollback auf v2.24.0 dieses Problem.
Rollback auf v.2.24.0 hat bei mir auch funktioniert.
Für alle anderen, die dieses Problem hatten, musste ich auch die Versionen von Momenten erzwingen, die andere Pakete in meinem node_modules/
Ordner als Abhängigkeiten von v2.24.0 gezogen haben
Verwenden von Garn, Hinzufügen dieser Zeile zu package.json hat die Dinge für mich sortiert
"resolutions": {
"**/moment": "2.24.0"
},
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 veröffentlichen die neue 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.
Auch wenn Sie folgenden Block haben. Das Paket-lock.json erstellt eine neue Version zB 2.5.1. Ändern Sie es also in "Moment": "2.24.0", bis das Problem behoben ist.
"Abhängigkeiten" {
"moment": "^2.24.0", ----------------> "moment": "2.24.0"
},
Ich habe auf 2.24.0 zurückgesetzt, habe aber immer noch dieselbe Warnung bei der Verwendung von Node
Es ist seltsam, dass ich heute nach der Neuinstallation von Abhängigkeiten diesen Fehler erhalten habe. Die vorgeschlagene Korrektur des Ignorierens der Gebietsschema-Plugins mit Webpack hat nicht funktioniert. Was funktionierte, war, die Version auf 2.24.0 zu belassen, wie von @sachins81 vorgeschlagen . Ich frage mich, ob sich in den letzten Commits etwas Relevantes geändert hat? @ichernev
Ich habe auf 2.24.0 zurückgesetzt, habe aber immer noch dieselbe Warnung bei der Verwendung von Node
@nitindevelopermca Stellen Sie sicher, dass es "2.24.0" und nicht "^2.24.0" ist. (Hat bei mir funktioniert, nachdem ich es geändert habe)
Ich habe gerade zu "^2.18.1" zurückgerollt und alles scheint gut zu funktionieren
Das gleiche Problem mit Reagieren, Moment ist keine Abhängigkeit von meinem Projekt, daher kann ich es nicht zurücksetzen
Das gleiche Problem mit Reagieren, Moment ist keine Abhängigkeit von meinem Projekt, daher kann ich es nicht zurücksetzen
Sie können diese Befehle vorerst ausführen.
npm install [email protected] --save
Ich hatte den gleichen Fall und als ich irgendwie suche, verwendet Antd Moment als Abhängigkeit und ich hoffe, dass das Moment-Problem in der nächsten Version geschlossen wird, während ich sah, dass sie eine neue Version veröffentlicht haben. Versuchen Sie also zuerst die neueste Version, die dann 2.25.1 ist versuchen, Moment als Abhängigkeit hinzuzufügen.
Danke schön!
Es hat mir geholfen, auf die feste Version 2.24.0
innerhalb der dependencies
und innerhalb der resolutions
zu wechseln. Ich verwende das Paket in meinem Code und als Abhängigkeit von react
und antd
.
Wenn Sie mehrere Arbeitsbereiche haben, vergessen Sie nicht, alle package.json
Dateien zu ändern. Das habe ich zunächst vergessen.
Das gleiche Problem ist in v2.25.1 aufgetreten, dann versuche ich, diese in package.json hinzuzufügen (ich verwende Garn):
"dependencies" {
"moment": "2.24.0"
},
"resolutions": {
"moment": "2.24.0"
},
Gleicher Fehler hier. ich heve
"dependencies": {
"moment": "^2.25.1"
}
und wenn ich npm run production
ausführe, erhalte ich:
shell script
WARNING in ./node_modules/moment/src/lib/locale/locales.js
Module not found: Error: Can't resolve './locale' in '/var/www/apf.local/html/node_modules/moment/src/lib/locale'
@ ./node_modules/moment/src/lib/locale/locales.js
@ ./node_modules/moment/src/lib/locale/locale.js
@ ./node_modules/moment/src/moment.js
@ ./resources/js/app.js
@ multi ./resources/js/app.js
Mit der ~2.24.0
Version funktioniert alles wie erwartet.
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 veröffentlichen die neue Version vor 17 Stunden von 2.24.0 bis 2.25.0_Lösung:
Schritt 1: Ändern Sie die Versionen
- "moment": "2.24.0",
- "moment-timezone": "^0.5.28",
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.
Importieren Sie einfach wie unten und es funktioniert:
Moment aus 'Moment/Moment' importieren;
groß! Es klappt!
Vielen Dank .
Es funktioniert gut. Importieren Sie einfach die folgende Zeile:
import * als Moment von 'moment/moment';
Importieren Sie einfach wie unten und es funktioniert:
Moment aus 'Moment/Moment' importieren;
Fantastische Lösung :) hat damit ein großes Kopfzerbrechen gelöst
Fantastic fix :) solved a major headache with this
Mittelmäßiger Fix, wenn jemand antd nicht direkt als Abhängigkeit hat.
Ich habe das gleiche Problem festgestellt, aber ich habe keine momentjs in Abhängigkeiten. Aber antd tut es.
Und npm kann nicht mit Auflösungen arbeiten.
Die einzige Lösung für mich im Moment ist das Downgrade von antd.
Ich kann keine richtige Lösung sehen, die kein zusätzliches Paket enthält, damit die Dinge funktionieren.
Ich habe das gleiche Problem in meiner React-App, das aus irgendeinem Grund aus heiterem Himmel auftauchte. Ich benutze moment
schon ewig in dieser App und habe diesen Fehler noch nie bemerkt. In meinem Fall wurde es tatsächlich zu einem Fehler, da meine React-App aufgrund dieses Problems nicht kompiliert werden konnte.
Ich habe dann import moment from 'moment/moment';
ausprobiert, wodurch das Kompilierungsproblem behoben wurde, aber ich erhalte immer noch die folgende Warnung, wenn ich die App ausführe.
./node_modules/moment/src/lib/locale/locales.js
Module not found: Can't resolve './locale' in 'C:\Users\myname\source\repos\myapp\node_modules\moment\src\lib\locale'
Die einzige Rettung ist, dass zumindest meine React-App gut kompiliert und ausgeführt wird.
Ich habe das gleiche Problem auch mit create-react-app (Typoskript-Vorlage). Ich habe es mit import moment from 'moment';
versucht. Dann habe ich den Fehler erhalten:
./node_modules/moment/src/lib/locale/locales.js
Module not found: Can't resolve './locale' in 'D:\MyName\Learning\ProjectName\node_modules\moment\src\lib\locale'
@devayarhlaine Ich habe in den obigen Kommentaren eine vorübergehende Lösung
Es war ein Moment der neuen Version.
Gleiches wie oben:
Ich habe das gleiche Problem mit "Modul 'Moment' kann nicht gefunden werden".
Die Verwendung der Lösung mit "import * as moment from 'moment/moment' hat ein Problem gelöst.
Aber dann bekam ich den Fehler:
./node_modules/moment/src/lib/locale/locales.js Modul nicht gefunden: './locale' in 'D:\MyName\Learning\ProjectName\node_modulesmoment\src\lib\locale' kann nicht aufgelöst werden
und Downgrade ist keine Lösung (meiner Meinung nach :-).
Bekomme diesen Fehler beim Upgrade von Angular 8 auf Angular 9.1.
Ein Upgrade auf Moment 2.25.1 löste das Problem #5486 ("TS2307: Cannot find module 'moment'."), aber der Locale-Fehler blieb bestehen.
Für diejenigen, die den Befehl "Garn erstellen React-App" verwenden
moment$: 'moment/moment.js'
Fügen Sie die obige Zeile in den Aliasblock bei der Zeilennummer 311 ein.
alias: {
// Support React Native Web
// https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/
'react-native': 'react-native-web',
// Allows for better profiling with ReactDevTools
...(isEnvProductionProfile && { 'react-dom$': 'react-dom/profiling',
'scheduler/tracing': 'scheduler/tracing-profiling', }),
...(modules.webpackAliases || {}),
moment$: 'moment/moment.js'
},
Eine andere Möglichkeit, dies zu lösen, besteht darin, moment.js durch Day.js zu ersetzen. Folgen Sie den Anweisungen in dieser URL, um die Rewired-App-Rewired >> https://ant.design/docs/react/use-with-create-react-app zu verwenden. Ändern Sie package.json gemäß der Anweisung. Erstellen Sie dann eine config-overrides.js im Stammordner wie unten beschrieben. Dies hat den Vorteil, dass die js von 231.11kb auf 11.11kb gemäß diesem https://github.com/ant-design/antd-dayjs-webpack-plugin verkleinert werden
const { override, addWebpackPlugin } = require('customize-cra');
const AntdDayjsWebpackPlugin = require('antd-dayjs-webpack-plugin');
module.exports = override(
addWebpackPlugin(new AntdDayjsWebpackPlugin())
);
Importieren Sie einfach wie unten und es funktioniert:
Moment aus 'Moment/Moment' importieren;
Fantastische Lösung!!!
Importieren Sie einfach wie unten und es funktioniert:
Moment aus 'Moment/Moment' importieren;
Hat bei mir funktioniert
Sieht so aus, als ob die Ursache des Problems durch das Feld "module"
in package.json
(https://github.com/moment/moment/commit/9ce89e7fea881b39be23b8c0646f7ef7817985d9)
hier ist PR, um es zu beheben https://github.com/moment/moment/pull/5503
Ja, das Entfernen von "module": "./src/moment.js",
aus package.json
hat die Warnung für mich verschwinden lassen. Übrigens, meine ist eine React
App -- create-react-app
und ich benutze "moment": "^2.25.1"
. Obwohl ich die neueste Version verwendet habe, wurde dieser Fehler immer noch angezeigt, aber das Aktualisieren von package.json
scheint das Problem zu beheben. Danke @ApacheEx
Ich habe diesen Fehler behoben, zumindest für mich.
Ich ging zu node_modules/moment/src/lib/locale/
Die Datei locales.js wurde geändert, Strg+f und die Zeile './locale'+name
durchsuchen.
Ändern Sie es in './'+name
.
Ich weiß nicht, warum auf denselben Ordner und '/.locale' + Name verweist, deshalb sagt der Fehler, dass ./locale nicht aufgelöst werden kann
Um ehrlich zu sein, habe ich die Originalzeile kopiert und oben kommentiert, wenn in Zukunft ein Fehler auftaucht.
Wenn es hilft, Daumen hoch. Diese Art von Fehlern sind die schlimmsten...
Habe das gleiche Problem, wurde auf 2.24 zurückgesetzt, bis ein Fix verfügbar ist. Ich kann die Moduldateien nicht bearbeiten, da ich auf einem automatischen Server baue und auf eine offizielle Veröffentlichung warte.
Ich habe das gleiche Problem mit Version 2.24 und 2.25.1
WARNING in ./node_modules/moment/src/lib/locale/locales.js
Wenn ich die Browserkonsole öffne, wird dieser Fehler angezeigt:
TypeError: Cannot read property 'defineLocale' of undefined at locales.min.js:1
Wir haben das gleiche Problem mit Moment 2.22
Importieren Sie einfach wie unten und es funktioniert:
Moment aus 'Moment/Moment' importieren;
Wo soll diese Zeile stehen?
Importieren Sie einfach wie unten und es funktioniert:
Moment aus 'Moment/Moment' importieren;Wo soll diese Zeile stehen?
In der Datei, die Sie verwenden möchten, verwenden Sie momentjs auf ecmascript wie folgt:
import moment from 'moment/moment';
(() => {
const now = moment(moment.now());
console.log(now);
})
2.25.3 sollte dieses Problem beheben.
Bitte öffnen Sie ein anderes Problem, wenn Sie noch Herausforderungen haben.
Oder Sie können Stack Overflow für individuellere Fragen ausprobieren.
Dieser Alias mit der WebPack-Konfiguration behebt ein Problem für mich:
resolve: {
extensions: ['.js', '.ts'],
alias: {
'./locale': 'moment/locale'
}
}
Wenn Sie Moment-Zeitzone verwenden:
https://github.com/moment/moment-timezone/issues/837
ich behebe das hiermit:
import moment from 'moment';
import 'moment/locale/pt-br';
es funktioniert, und das Gebietsschema ist auf 'pt-br' gesetzt, und alle anderen Sprachen funktionieren auch.
Hilfreichster Kommentar
Importieren Sie einfach wie unten und es funktioniert:
Moment aus 'Moment/Moment' importieren;