Moment: Jalur './locale' tidak ditemukan di moment/src/lib/locale/locales.js

Dibuat pada 19 Mar 2018  ·  54Komentar  ·  Sumber: 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'

Saya menemukan ada yang salah dengan fungsi di bawah ini

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); , haruskah ../locale/ ?

Troubleshooting

Komentar yang paling membantu

Cukup impor seperti di bawah ini dan berhasil:

impor momen dari 'momen/momen';

Semua 54 komentar

Saya melihat peringatan yang sama ini ketika saya menggunakan webpack untuk menggabungkan momen. Adakah yang tahu kapan kesalahan ini diperkenalkan?

Saya memiliki peringatan yang sama menggunakan angular-cli solusi apa saja?

Memiliki masalah yang sama. Apakah Anda tahu ada solusi/perbaikan?

Masalah yang sama - sepertinya masalah jalur dengan './locale' vs '../locale'. Apakah ada yang mencari bug ini?

https://github.com/moment/moment/issues/2979

Sepertinya sudah bertahun-tahun, mengapa mereka tidak memperbaikinya, saya tidak tahu. Saya baru saja mengalami ini juga ketika mencoba menggunakan jsnext: main di webpack alih-alih main.

Solusi saya untuk tetap menggunakan

... resolve: { alias: { moment$: path.resolve(root_dir, "node_modules/moment/moment.js") } }

Di atas tidak berfungsi untuk saya tetapi mengikuti tutorial ini membantu memperbaikinya untuk saya.

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

Apakah ada sesuatu yang baru tentang ini? Saya menggunakan Laravel Mix ... hal yang sama di sini ...

saya bersedia

import * as moment from 'moment';

dan itu berhasil.

saya bersedia

import * as moment from 'moment';

dan itu berhasil.

di dalam paket web? Saya sedang memikirkan bagaimana melakukan ini dengan Laravel Mix ..

@marcelogarbin oh maaf saya tidak main-main dengan Laravel sejak versi 4. Saya minta maaf tapi .Saya tidak tahu bagaimana membuatnya bekerja dengan campuran laravel.

Cukup impor seperti di bawah ini dan berhasil:

impor momen dari 'momen/momen';

Solusi @yaasinhamidi berhasil

saya bersedia

import * as moment from 'moment';

dan itu berhasil.

Di mana garis ini harus diletakkan?

Mengalami masalah yang sama untuk pertama kalinya setelah memperbarui ke 2.25.0. Saya juga menggunakan Laravel Mix (perhatikan, saya tidak pernah mengalami masalah ini pada versi sebelumnya).

solusi saya adalah kembali ke 2.24.0

Saya menghadapi masalah yang sama setelah memperbarui

Sampai diperbaiki, memutar kembali ke v2.24.0 memecahkan masalah ini.

Mengembalikan ke v.2.24.0 juga berhasil untuk saya.

untuk siapa pun yang mengalami masalah ini, saya juga harus memaksa versi momen yang paket lain di folder node_modules/ ditarik sebagai dependensi ke v2.24.0 juga

menggunakan benang, menambahkan baris ini ke package.json mengurutkan hal-hal untuk saya

"resolutions": {
        "**/moment": "2.24.0"
    },

Hallo teman-teman!
Saya menghadapi masalah yang sama dari beberapa jam terakhir dan akhirnya saya menyelesaikannya dengan mengubah versi momen.

Dalam komentar di atas saya melihat solusi terakhir.

Alasan:
_moment rilis versi baru 17 jam yang lalu dari 2.24.0 ke 2.25.0_

Larutan:
Langkah 1: ubah versi

  • "momen": "2.24.0",
  • "zona waktu-momen": "^0.5.28",

Langkah 2: Jika Anda menggunakan benang, harap tambahkan resolusi di file package.json Anda seperti ini
"ketergantungan" {
"momen": "2.24.0",
"zona waktu-momen": "^0.5.28"
},
"resolusi": {
"momen": "2.24.0"
},

Terima kasih.

Bahkan jika Anda punya, ikuti blok. Package-lock.json akan membuat versi baru yaitu 2.5.1. Jadi ubah ke "moment": "2.24.0" hingga masalah teratasi.
"ketergantungan" {
"momen": "^2.24.0", ----------------> "momen": "2.24.0"
},

saya memutar kembali ke 2.24.0 tetapi masih memiliki peringatan yang sama saat menggunakan node

Aneh saya mulai mendapatkan kesalahan ini hari ini setelah menginstal ulang dependensi, perbaikan yang disarankan untuk mengabaikan plugin lokal dengan webpack tidak berfungsi. Apa yang berhasil adalah membiarkan versi tetap pada 2.24.0 seperti yang disarankan oleh @sachins81 . Saya ingin tahu apakah sesuatu yang relevan berubah dalam komitmen baru-baru ini? @icherev

saya memutar kembali ke 2.24.0 tetapi masih memiliki peringatan yang sama saat menggunakan node
@nitindevelopermca Pastikan "2.24.0" dan bukan "^2.24.0". (Bekerja untuk saya setelah mengubahnya)

Saya baru saja memutar kembali ke "^ 2.18.1" dan semuanya tampak berfungsi dengan baik

Masalah yang sama menggunakan reaksi, momen bukan ketergantungan proyek saya jadi saya tidak dapat memutarnya kembali

Masalah yang sama menggunakan reaksi, momen bukan ketergantungan proyek saya jadi saya tidak dapat memutarnya kembali

Anda dapat menjalankan perintah ini untuk saat ini.

npm install [email protected] --save

Saya memiliki kasus yang sama dan ketika saya mencari entah bagaimana antd menggunakan momen sebagai ketergantungan dan saya berharap masalah saat ini akan ditutup pada rilis berikutnya sementara saya melihat mereka merilis versi baru jadi silakan coba versi terbaru yaitu 2.25.1 lalu coba tambahkan momen sebagai ketergantungan.

Terima kasih!

Itu membantu saya untuk mengubah ke versi tetap 2.24.0 di dalam dependencies dan di dalam resolutions . Saya menggunakan paket di dalam kode saya dan sebagai ketergantungan react dan antd .

Jika Anda memiliki beberapa ruang kerja jangan lupa untuk mengubah semua file package.json . Saya lupa ini pada awalnya.

masalah yang sama terjadi di v2.25.1, lalu saya mencoba menambahkan ini di package.json (saya menggunakan benang):

"dependencies" {
  "moment": "2.24.0"
},
"resolutions": {
  "moment": "2.24.0"
},

Kesalahan yang sama di sini. saya punya

"dependencies": {
    "moment": "^2.25.1"
}

dan ketika saya menjalankan npm run production saya mendapatkan:
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

Dengan versi ~2.24.0 , semuanya berfungsi seperti yang diharapkan.

Hallo teman-teman!
Saya menghadapi masalah yang sama dari beberapa jam terakhir dan akhirnya saya menyelesaikannya dengan mengubah versi momen.

Dalam komentar di atas saya melihat solusi terakhir.

Alasan:
_moment rilis versi baru 17 jam yang lalu dari 2.24.0 ke 2.25.0_

Larutan:
Langkah 1: ubah versi

  • "momen": "2.24.0",
  • "zona waktu-momen": "^0.5.28",

Langkah 2: Jika Anda menggunakan benang, harap tambahkan resolusi di file package.json Anda seperti ini
"ketergantungan" {
"momen": "2.24.0",
"zona waktu-momen": "^0.5.28"
},
"resolusi": {
"momen": "2.24.0"
},

Terima kasih.

Cukup impor seperti di bawah ini dan berhasil:

impor momen dari 'momen/momen';

Bagus! berhasil!

Terima kasih .
Kerjanya bagus. cukup impor baris di bawah ini:
import * sebagai momen dari 'momen/momen';

Cukup impor seperti di bawah ini dan berhasil:

impor momen dari 'momen/momen';

Perbaikan yang fantastis :) memecahkan sakit kepala besar dengan ini

Fantastic fix :) solved a major headache with this

Perbaikan biasa-biasa saja, jika seseorang tidak memiliki antd sebagai ketergantungan secara langsung.

Saya mengalami masalah yang sama tetapi saya tidak memiliki dependensi momentjs. Tapi semut melakukannya.
Dan npm tidak dapat bekerja dengan resolusi.

Satu-satunya solusi bagi saya saat ini adalah menurunkan versi antd.
Saya tidak dapat melihat solusi yang tepat yang tidak akan menyertakan paket tambahan untuk membuat semuanya berfungsi.

Saya memiliki masalah yang sama di aplikasi Bereaksi saya yang, untuk beberapa alasan, mulai muncul tiba-tiba. Saya telah menggunakan moment di aplikasi ini selamanya dan tidak pernah melihat kesalahan ini. Ini sebenarnya menjadi kesalahan dalam kasus saya karena aplikasi React saya tidak dapat dikompilasi karena masalah ini.

Saya kemudian mencoba import moment from 'moment/moment'; yang memperbaiki masalah kompilasi tetapi saya masih mendapatkan peringatan berikut setiap kali saya menjalankan aplikasi.

./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'

Satu-satunya anugrah yang menyelamatkan adalah bahwa aplikasi React saya, setidaknya, dikompilasi dan berjalan dengan baik.

Saya memiliki masalah yang sama dengan create-react-app (typescript template) juga. Saya mencoba import moment from 'moment'; .Kemudian saya mendapatkan kesalahan:
./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'

@devyarhlaine Saya telah memposting solusi sementara di komentar di atas, silakan periksa.

Ini adalah masalah versi baru.

Sama s di atas:
Saya memiliki masalah yang sama dengan "Tidak dapat menemukan modul 'momen'" juga.
Menggunakan solusi dengan "import * as moment from 'moment/moment' memecahkan satu masalah.
Tapi kemudian saya mendapatkan kesalahan:
./node_modules/moment/src/lib/locale/locales.js Modul tidak ditemukan: Tidak dapat menyelesaikan './locale' di 'D:\MyName\Learning\ProjectName\node_modulesmoment\src\lib\locale'
dan menurunkan versi bukanlah solusi (menurut saya :-).

Mendapat kesalahan ini saat memutakhirkan dari sudut 8 ke sudut 9.1.
Memutakhirkan ke momen 2.25.1 memecahkan masalah #5486 ("TS2307: Tidak dapat menemukan modul 'momen'. "), tetapi kesalahan lokal tetap ada.

Bagi mereka yang menggunakan perintah "benang buat aplikasi reaksi", cara mengatasinya adalah dengan mengedit node_modules/react-scripts/config/webpack.config.js untuk menambahkan alias seperti di bawah ini.

moment$: 'moment/moment.js'

Masukkan baris di atas ke dalam blok alias di nomor baris 311.

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'
},

Cara lain untuk mengatasi ini adalah dengan mengganti moment.js dengan Day.js. Ikuti petunjuk di url ini untuk menggunakan react-app-rewired >> https://ant.design/docs/react/use-with-create-react-app. Ubah package.json sesuai dengan instruksi. Kemudian buat config-overrides.js di folder root seperti di bawah ini. Ini memiliki manfaat menyusutkan js dari 231.11kb menjadi 11.11kb menurut https://github.com/ant-design/antd-dayjs-webpack-plugin ini

const { override, addWebpackPlugin } = require('customize-cra');    
const AntdDayjsWebpackPlugin = require('antd-dayjs-webpack-plugin');

module.exports = override(
        addWebpackPlugin(new AntdDayjsWebpackPlugin())
);

Cukup impor seperti di bawah ini dan berhasil:

impor momen dari 'momen/momen';

Perbaikan yang fantastis !!!

Cukup impor seperti di bawah ini dan berhasil:

impor momen dari 'momen/momen';

Bekerja untuk saya

sepertinya akar masalah disebabkan oleh bidang "module" di package.json (https://github.com/moment/moment/commit/9ce89e7fea881b39be23b8c0646f7ef7817985d9)

di sini adalah PR untuk memperbaikinya https://github.com/moment/moment/pull/5503

Yup, menghapus "module": "./src/moment.js", dari package.json membuat peringatan itu hilang untuk saya. BTW, milik saya adalah aplikasi React -- create-react-app dan saya menggunakan "moment": "^2.25.1" . Meskipun saya menggunakan versi terbaru, saya masih mendapatkan kesalahan ini tetapi memperbarui package.json tampaknya memperbaiki masalah. Terima kasih @ApacheEx

Saya telah memperbaiki kesalahan ini, setidaknya untuk saya.

Saya pergi ke node_modules/moment/src/lib/locale/
Memodifikasi file locales.js, ctrl+f dan cari baris './locale'+name .
Ubah ke './'+name .
Saya tidak tahu mengapa menunjuk ke folder yang sama dan '/.locale' + nama, inilah mengapa kesalahan mengatakan tidak dapat menyelesaikan ./locale

Sejujurnya, saya menyalin baris asli dan berkomentar tepat di atas, jika di masa depan muncul kesalahan.

Jika membantu, acungkan jempol. Kesalahan semacam ini lebih buruk ...

Memiliki masalah yang sama, kembalikan ke 2.24 hingga perbaikan tersedia. Saya tidak dapat mengedit file modul, karena saya sedang membangun di server otomatis, jadi menunggu rilis resmi.

Saya memiliki masalah yang sama dengan versi 2.24 dan 2.25.1
WARNING in ./node_modules/moment/src/lib/locale/locales.js

Ketika saya membuka konsol browser, saya melihat kesalahan ini:
TypeError: Cannot read property 'defineLocale' of undefined at locales.min.js:1

Kami mengalami masalah yang sama dengan momen 2.22

Cukup impor seperti di bawah ini dan berhasil:

impor momen dari 'momen/momen';

Di mana garis ini harus diletakkan?

Cukup impor seperti di bawah ini dan berhasil:
impor momen dari 'momen/momen';

Di mana garis ini harus diletakkan?

Dalam file yang ingin Anda gunakan momentjs pada ecmascript seperti di bawah ini:

import moment from 'moment/moment';
(() => {
const now = moment(moment.now());
console.log(now);
})

2.25.3 harus memperbaiki masalah ini.
Silakan buka edisi lain jika Anda masih memiliki tantangan.
Atau, Anda dapat mencoba Stack Overflow untuk pertanyaan yang lebih individual.

Alias ​​​​dengan konfigurasi WebPack ini memperbaiki masalah bagi saya:

resolve: {
  extensions: ['.js', '.ts'],
  alias: {
    './locale': 'moment/locale'
  }
}

Jika Anda menggunakan zona waktu-saat:
https://github.com/moment/moment-timezone/issues/837

saya perbaiki ini dengan ini:

import moment from 'moment'; import 'moment/locale/pt-br';

itu berfungsi, dan lokal disetel ke 'pt-br', dan semua bahasa lainnya juga berfungsi.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat