Moment: './locale'-Pfad in moment/src/lib/locale/locales.js nicht gefunden

Erstellt am 19. März 2018  ·  54Kommentare  ·  Quelle: moment/moment

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/ ?

Troubleshooting

Hilfreichster Kommentar

Importieren Sie einfach wie unten und es funktioniert:

Moment aus 'Moment/Moment' importieren;

Alle 54 Kommentare

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.

https://alligator.io/angular/custom-webpack-config/

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

  • "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.

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", besteht die Lösung darin, node_modules/react-scripts/config/webpack.config.js zu bearbeiten, um den Alias ​​wie unten beschrieben hinzuzufügen.

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.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen