Moment: Kesalahan Webpack: Tidak dapat menemukan modul "./locale" setelah memperbarui ke 2.19.0

Dibuat pada 10 Okt 2017  ·  149Komentar  ·  Sumber: moment/moment

Sunting: Jika Anda mengatur ketergantungan Anda ke 2.18.1, semuanya akan baik-baik saja.
Sunting 2 : Setel "moment": "2.18.1" di package.json . Anda
Sunting 3: Kami yakin ini sudah diperbaiki.

Halo.
Menggunakan create-react-app. Setelah memperbarui momen ke 2.19.0 saya memiliki kesalahan ini saat memuat:

Kesalahan: Tidak dapat menemukan modul "./locale"
-> 9 bingkai tumpukan diciutkan.
./src/utils/Utils.js
src/utils/Utils.js:1

1 | impor momen dari 'momen'

Komentar yang paling membantu

@patricksteenks : iya. Perbaiki seperti ini di package.json Anda "moment": "2.18.1"

Semua 149 komentar

Saya memiliki hal yang sama, mengkonfirmasi kesalahan ini.

sama disini

Dapat mengkonfirmasi:

This relative module was not found:

* ./locale in ./node_modules/moment/src/lib/locale/locales.js

Oke, kita akan melihat ini, tapi itu tidak akan terlalu cepat.

Kami mengubah nama fungsi yang diperlukan, jika seseorang dapat melihat/menyelidiki apakah itu terkait dengan:

https://github.com/moment/moment/pull/4213
https://github.com/moment/moment/pull/4214

Masalah yang sama disini. Apakah penurunan versi akan memperbaiki masalah?

Sama di sini, merusak beberapa aplikasi yang saya kerjakan.

@patricksteenks : iya. Perbaiki seperti ini di package.json Anda "moment": "2.18.1"

@ichernev hei, tapi saya menggunakan lokal tanpa mengimpor. Cukup gunakan import moment from 'moment' dan gunakan seperti ini moment(date).locale('uk').format('ddd') . Seperti yang saya pahami, Anda mengubah import menjadi locale . Bagaimana saya bisa memperbaikinya dalam kasus saya?

Masalah yang sama pada proyek yang dibangun Angular-CLI

Dikonfirmasi.

VueJS 2 Webpack build juga terpengaruh. Perbaikan sementara seperti yang disarankan GautierT (downgrade momentjs)

package.json (masalah dengan kedalaman zona waktu momen pada momen 2.19)

    "moment": "2.18.1",
    "moment-timezone": "^0.5.13",

package.json (masalah secara umum)

    "moment": "2.18.1"

Saya dapat mengkonfirmasi ini juga terjadi!

saya bisa konfirmasi.
package.json

"moment": "2.18.1"

@renedx cukup baris ini

Sama dalam aplikasi Angular 4.
Baru saja diturunkan ke 2.18.1 (nomor versi ketat di package.json)

Terkena ini juga. Saya menduga itu adalah webpack yang melakukan keajaiban untuk mengenali "persyaratan" dinamis, dan tidak dapat lagi mengenalinya dengan nama baru, dan dengan demikian lokal tidak pernah dibundel ke dalam paket.

(Kebetulan, seluruh situasi ini terdengar sangat mirip dengan apa yang dimaksud dengan impor dinamis ES6. Kita bisa bermimpi :-)

Saya menggunakan webpack dari halaman ini

new IgnorePlugin(/^\.\/locale$/, /moment$/)

Sekarang hapus

Dan di butuhkan

const moment = require('moment');

Sekarang

const moment = require('moment').default;

Sebenarnya, saya pikir koneksi Angular hanya karena sebagian besar proyek Angular menggunakan Angular-CLI, yang secara internal menggunakan Webpack. Tapi itu mungkin terkait dengan beberapa konfigurasi Webpack tertentu di tumpukan itu.
Tampaknya menjadi masalah bundling yang cukup umum, meskipun.

Bertobatlah, bertobatlah, hari kiamat telah tiba!

Sama disini.

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

Sama di sini - saya memperbaikinya dengan fitur benang untuk membebani pengaturan default sebuah paket:

letakkan ini di package.json utama Anda (sesuaikan "moment-timezone" dengan nama paket yang memuat momen jika Anda tidak langsung memuat momen):

  "resolutions": {
    "moment-timezone/moment": "2.18.1"
  },

seperti asteroid 10km .... sama di sini ...

Apa ETA untuk memperbaikinya?

Oke, di sinilah kita berada:

  • Jika Anda mengatur ketergantungan Anda ke 2.18.1, semuanya akan baik-baik saja.
  • Ini adalah masalah dengan https://github.com/moment/moment/pull/4213
  • Saya telah menggunakan paket web dan tim asli yang bereaksi untuk membicarakan tentang perbaikan apa yang akan berhasil untuk semua pihak
  • Karena menyetel dependensi ke 2.18.1 memberikan mitigasi yang mudah, saat ini saya tidak ingin memutar kembali. Sebagai gantinya, saya ingin menunggu umpan balik dari Webpack dan React Native untuk melihat apakah kita dapat mencapai kesepakatan tentang apa yang harus dilakukan yang akan memajukan situasi ini . Untuk alasan itu, saya tidak memiliki ETA untuk diperbaiki.
  • MCVE dapat ditemukan di sini: https://github.com/mj1856/moment-webpack-test

Kesalahan yang dikonfirmasi saat menjalankan aplikasi reaksi yang dibuat dengan CLI create-react-app.

Selesaikan momen penurunan versi ini dan versi zona waktu-monent.

npm install [email protected] sebagai perbaikan sementara sehingga Anda tidak perlu berurusan dengan memperbarui package.json beberapa kali. Ini mungkin akan segera diperbaiki, maka Anda dapat melakukannya npm i .

@aheissenberger ini menyelamatkan hidup saya, saya memiliki masalah yang sama dengan rc-calendar, dapat mengonfirmasi Ini berfungsi untuk yarn 1.2.0.

Masalah yang sama webpack 3.6.0 + momen 2.19.0. Bekerja dengan baik dengan 2.18.1

Orang lain mungkin memiliki masalah yang sama: Meskipun saya tidak memperbarui ke 2.19.0, di package.json saya memiliki ^2.18.1 . Saya mengubahnya menjadi 2.18.1 tanpa ^ , dan sekarang tidak akan menginstal apa pun yang lebih tinggi dari 2.18.1 sampai kami tahu 2.19.x aman

@ichernev tampaknya sangat mungkin bahwa

Mungkin Anda bisa memberikan beberapa detail tentang masalah React Native yang sedang diperbaiki karena mungkin ada cara yang lebih baik untuk mengatasi masalah asli itu?

Dalam proyek kami, kami menggunakan yarn 1.0.2 , create-react-app , dan deps ini di 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"
 }

Meskipun kami menggunakan "moment": "2.18.1" , kami masih mendapatkan
screen shot 2017-10-10 at 3 53 43 pm

Apakah ada solusi untuk masalah benang?

@ggsjyoon : Saya memiliki situasi yang sama (masih mendapatkan kesalahan) sampai saya ingat Anda harus memperbarui salah satu file yang sedang ditonton WebPack untuk membuatnya dibuat ulang dan menghapus semua versi yang di-cache.

+1

@ggsjyoon mungkin ada persyaratan tambahan dari salah satu paket Anda (misalnya zona waktu-saat) - Anda dapat menggunakan tip saya https://github.com/moment/moment/issues/4216#issuecomment -335489518 untuk memperbaikinya dengan benang

Saya akhirnya melewati ini dengan mengubah:

import * as moment from 'moment';

ke:

import * as moment from 'moment/moment';

+1

@morrisonbrett Ini berfungsi. Terima kasih

Mengonfirmasi saran @GautierT berfungsi untuk saya.

@maggiepint Melihat apa yang berhasil untuk @morrisonbrett , saya berpikir bahwa #4213 mungkin bukan masalahnya. 2.19 memperkenalkan perubahan baru lainnya, bidang modul di package.json - yaitu sebelumnya webpack menggunakan versi transpil.

Mengaktifkan ES6 untuk reaksi asli adalah penyebab sebagian besar masalah memblokir #4187, dan #3904 (pada cabang pengembangan hanya untuk beberapa waktu) membuat perubahan yang sama untuk semua pengguna webpack.

@tqc - mungkin keduanya. @thelarkinn sudah mengonfirmasi bahwa webpack tidak akan menyukai kebutuhan dinamis.

Masalah yang sama di sini, ada pembaruan?

@maggiepint Ya, saya menyadari tepat setelah saya menulis komentar itu bahwa bug di akhir utas tidak persis sama di awal. Sisi ES6 mungkin dapat diperbaiki dengan sesuatu seperti module.exports = require(‘moment’).default , tapi saya tidak yakin apakah itu masih memungkinkan goyangan pohon, dan harmoni simpul tidak suka mencampur impor dengan kebutuhan.

diselesaikan melalui aliasing webpack:

  resolve: {
    alias: {
      'moment$': 'moment/moment',
    },
  },

Dapatkah seseorang mengetahui semua bit dari 2.19 yang merusak webpack, mengusulkan PR minimal (berdasarkan 2.19.0), yang mengembalikan bagian "buruk", dan kami akan mempertimbangkan untuk menggabungkannya untuk 2.19.1.

Mengatakan "saya juga" untuk 1000 kali tidak membawa banyak ke meja.

Solusi @morrisonbrett berfungsi import * as moment from 'moment/moment';

Saya dapat mengkonfirmasi masalah yang sama dengan Angular-CLI v1.4.4. Saya awalnya terkejut ketika saya melihat kesalahan yang melibatkan momentjs karena proyek saya tidak menggunakannya tetapi setelah menyelidiki saya melacak injeksinya kembali ke WebPack.

Inilah pesan peringatan saya ketika saya membangun:

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

Saya juga telah mencoba metode import * as moment from 'moment/moment'; tetapi tidak berhasil untuk kasus saya.

Hai @kud , @AleshaOleg – jika Anda masih mencoba mengimpor lokal:
dari pada:
import 'moment/locale/*
mencoba:
import 'moment/src/locale/*'

Telah berjuang dengan masalah yang sama di sini ...
–––
@AleshaOleg : dalam kasus penggunaan Anda, saya pikir itu bisa:
import moment from 'moment'
import 'moment/src/locale/uk'
lalu panggil saja moment(date).format('ddd')

Terima kasih @dialnco !

Saya akhirnya berurusan dengan masalah ini, ketika memperbarui ke 2.19.0 , dengan sepenuhnya menonaktifkan kode yang mencoba memuat lokal.

({
  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
    }
  }
})

Saya kemudian secara manual menambahkan import 'moment/src/locale/ja' , import 'moment/src/locale/pt-br' , dkk sesuai kebutuhan aplikasi saya, alih-alih memuat semua lokal. Jika Anda kreatif, Anda dapat menggunakan dinamis import() s alih-alih hanya memuat bahasa yang dibutuhkan aplikasi Anda.

Sangat penting bahwa, jika Anda melakukan ini, Anda tidak melakukan import 'moment/locale/foo' , tetapi import 'moment/src/locale/foo' . Karena bagaimana file lokal mencoba merujuk ke moment itu sendiri, mereka akan menggabungkan salinan kedua dari moment (kali ini build UMD sebagai lawan dari build ESM) dan itu akan, di putar, muat semua lokal lagi.

Saya harap ini membantu seseorang (opsi 1 dan 2 dari komentar di atas, terima kasih kepada @patsissons ):
-Jika Anda tidak memiliki modul yang memuat moment.js, tetapi aplikasi Anda memilikinya, pindah saja ke versi yang lebih lama
-Jika Anda memiliki modul yang juga memiliki dependensi moment.js, hal di atas tidak akan membantu Anda, Anda harus memodifikasi konfigurasi webpack Anda:
{...
menyelesaikan: {
...
alias: {
'momen$': 'momen/momen',
}
}
}

-Tetapi jika Anda menggunakan react-create-app (seperti yang saya lakukan) dan Anda harus segera membangunnya, satu-satunya pilihan bagi Anda untuk menjalankan 'npm eject', dengan cara ini Anda akan memiliki akses ke konfigurasi webpack dan kedua pilihan akan tersedia untuk Anda.

Jadi saya minta maaf, tetapi satu-satunya metode yang berfungsi di sini adalah metode @patsissons . https://github.com/moment/moment/issues/4216#issuecomment -335637520

Tetap

import moment from "moment"
import "moment/locale/fr"
moment.locale("fr")

tetapi menambahkan di webpack

    resolve: {
      alias: {
        'moment$': 'moment/moment',
      }
    },

Untuk beberapa alasan, benang mengabaikan pengaturan "resolusi" saya dari package.json.
Cara hacky untuk memperbaikinya, jika Anda menggunakan zona waktu-saat adalah dengan mengedit yarn.lock

[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"

Kita tunggu fix 2.19.1....

Bisakah seseorang menjelaskan apa masalah sebenarnya di sini? Apakah hanya karena webpack tidak mengidentifikasi alias require() ?

@TomMettam 2.19.0 mengarahkan webpack ke kode es6 di moment/src/moment, yang tidak mengekspor antarmuka yang sama seperti moment/moment.

Selain itu, persyaratan alias mencegah webpack mengemas semua file yang mungkin diminta secara dinamis. Mengimpor file lokal secara manual akan berhasil, kecuali bahwa pilihan yang jelas untuk mengimpor dari momen/lokal akan memuatnya ke dalam instans momen yang berbeda dengan yang sebenarnya Anda gunakan.

Dan jika itu terlalu sederhana, ada perbedaan dalam perilaku berbagai versi yarn/npm - saya kebetulan menggunakan versi npm yang menggunakan instance paket apa pun yang ada di folder node_modules aplikasi root, tetapi versi lain membuat lebih sulit untuk mengganti paket yang digunakan.

Siapa yang memutuskan bahwa mengubah tanda tangan ekspor dalam versi minor adalah ide yang bagus?

Perhatikan bahwa ini juga merusak perpustakaan pihak ke-3 yang mengandalkan momen

+1

Ini tidak dapat diterima untuk peningkatan kecil.

Saya mengerti ide di baliknya tapi tolong, lebih ketat tentang semver.

@darkalor itu tidak disengaja - tanda tangan ekspor yang dimaksud hanya berbeda secara material dalam keadaan terbatas - hal yang tampaknya berfungsi dengan baik sampai diekspos ke sejumlah besar pengguna.

@darkalor @kud - Regresi terjadi. Silakan mencoba untuk menjadi konstruktif; semua orang sadar bahwa ini seharusnya tidak terjadi dan mengomel tidak membantu siapa pun.

@TomMettam Ya itu terjadi tetapi ketika itu terjadi Anda dapat menghadapinya dan dengan berurusan maksud saya Anda dapat memutakhirkannya sebagai mayor, bukan minor. Itu saja. Saya tidak menyalahkan siapa pun, saya menyalahkan situasi bahwa jika seseorang berpikir "oh ok saya bisa mengupgrade, karena hanya di bawah umur", agak salah dalam hal ini. ;)

Saya menghargai semua pekerjaan yang dilakukan pada saat ini, tetapi saya hanya berbicara tentang situasi yang tidak stabil.

Saya tidak menyinggung siapa pun, maaf.

@kud tidak ketika Anda harus memilih nomor versi sebelum Anda tahu ada regresi. Tingkat kerumitan yang dibutuhkan untuk mendukung banyaknya lingkungan yang dilakukan saat ini merupakan sesuatu yang cukup mengesankan.

@tqc tapi sekarang Anda tahu itu, itu masalahnya. Seperti yang dikatakan sebelumnya oleh @TomMettam , itu terjadi.

Menghapus atau/dan menambahkan tag dimungkinkan.

Pokoknya saya tidak akan spam lagi di sini, terima kasih atas solusinya; Saya menambahkan catatan untuk orang lain yang tidak mengikuti masalah ini, di changelog: https://Gist.github.com/ichernev/5f3f4eb02761b4f765a0cccf02cec603#gistcomment -2226628

Semoga harimu menyenangkan. :)

Saya menggunakan benang sebagai manajer paket saya. Untuk beberapa alasan, file yarn.lock saya tidak diperbarui untuk mencerminkan perubahan yang saya buat di file package.json saya. pengaturan saya seperti yang dikatakan @daniesy . Masalahnya adalah zona waktu-saat di file yarn.lock saya masih tergantung pada versi momen '^2.18.1'.

Untuk memperbaikinya, saya menjalankan cache yarn cache :
yarn cache clean

Kemudian :
yarn install

Mudah-mudahan, ini akan menghasilkan kembali file yarn.lock Anda dengan sesuatu di sepanjang baris:

[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" 

Either way, hanya, periksa kunci benang Anda tidak mencoba memasukkan versi momen yang lebih besar dari 2.18.1 dalam modul apa pun terutama zona waktu-momen dan momen.

Saya pikir kami memiliki perbaikan: https://github.com/moment/moment/pull/4232

Bagian terbaik - Saya pikir ini akan berfungsi untuk paket web dan bereaksi asli - tidak ada kesedihan!
Saya sudah menguji di webpack, tetapi apakah seseorang akan menggunakan tes asli reaksi? Perhatikan bahwa Anda perlu menjalankan grunt release untuk mendapatkan file yang dibuat sebelum Anda dapat menguji menggunakan tautan npm.

@maggiepint -

2.19.1 sudah keluar, cobalah

Bekerja untuk saya dengan Webkit.

Terima kasih @ichernev dan semua orang yang terlibat!

@ichernev : 2.19.1 bekerja untuk saya.
Bereaksi 16.
buat-reaksi-aplikasi.
Tidak dikeluarkan

Momen dimuat seperti ini:

import moment from 'moment'
import 'moment/locale/fr'

Terima kasih untuk perbaikannya. 👍

Baru saja memecat build VSTS lain menggunakan angular-cli/webpack dan diterapkan kembali ke lingkungan

Semuanya kembali normal

Terima kasih

Saya juga dapat mengonfirmasi bahwa masalah ini telah diselesaikan untuk Angular-CLI v1.4.4. Terima kasih!

bekerja dengan TypeScript/webpack/karma/phantomjs. Terima kasih untuk perbaikannya!

Untuk membuatnya berfungsi, saya hanya menyertakan file lokal sebelum momen.
import 'moment/locale/de'; import moment from 'moment';
dan kemudian melakukannya
moment.locale("de");

sepertinya masih ada di "versi": "2.22.2"?

Saya juga menggunakan 2.22.2. masalahnya masih ada

Saya menggunakan 2.22.2 dan melihat masalah yang sama.

Seperti di atas. Masalah yang sama, versi yang sama.

Menggunakan reaksi asli dan melihat kesalahan ini untuk versi rilis:

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 bekerja

masih tidak bekerja untuk saya

saya juga tidak bisa mendapatkan 2.18.1 untuk bekerja untuk saya

2.22.1 kaki lol

Juga melihat regresi di v2.22.2. Mengembalikan ke 2.22.1 memperbaikinya untuk saya.

Halo semuanya,

Punya masalah yang sama (menggunakan Webpack di Laravel). Ini tidak ideal, tetapi perbaikan cepat yang berhasil bagi saya adalah menyalin folder "locale" dari repositori di samping file moment.js atau moment-with-locale.js.

Juga mengalami ini pada v2.22.2 .

Untuk membuatnya berfungsi, saya hanya menyertakan file lokal sebelum momen.
import 'moment/locale/de'; import moment from 'moment';
dan kemudian melakukannya
moment.locale("de");

@mj1856 apakah pantas untuk membuka kembali masalah ini atau haruskah kita membuat yang baru/baru? Saya juga melihat ini lagi. Mengembalikan ke 2.22.1 tidak memperbaikinya dalam kasus saya dan saya harus menggunakan perbaikan @patsissons untuk membuat webpack bahagia lagi.

sama

Saya menggunakan allowSyntheticDefaultImports seperti yang dijelaskan dalam dokumen di sini: https://momentjs.com/docs/#/use -it/typescript/ dan itu memecahkan kesalahan Cannot find module "./locale" untuk saya. Perhatikan bahwa // @ts-ignore atas impor juga diperlukan di IDE saya.

pertanyaan yang sama, moment:'2.18.1'

Apakah ini masih disarankan: import moment from "moment/min/moment-with-locales"; ?

b/c Saya berakhir dengan kesalahan (?) yang sama dengan [email protected] dan CRA:

./node_modules/moment/min/moment-with-locales.js
Module not found: Can't resolve './locale' in '/...myproject/node_modules/moment/min'

Untuk semua orang yang lewat internet, inilah cara Anda dapat memperbaikinya jika Anda membangun dengan rollup:

Dengan asumsi Anda menggunakan 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 memiliki entri package.json untuk jsnext:main yang dapat kita manfaatkan di sini. untuk menyertakan lokal untuk kami selama proses pembuatan. Ukuran bundel Anda akan bertambah, tetapi itu akan mencegah kesalahan konsol

Saya memiliki masalah yang sama dengan versi momen 2.24.0 di aplikasi Bereaksi saya. Saya kira masalah ini belum terselesaikan.

Saya memiliki masalah yang sama dengan versi momen 2.24.0 di aplikasi Bereaksi saya. Saya kira masalah ini belum terselesaikan.

Mengkonfirmasi. "momen": "2.24.0". 2.18.1 tidak menyelesaikan masalah. Simpul v12.16.0

Sama di sini, dengan 2.24.0 untuk proyek Preact saya.

Masih mengalami masalah ini, tolong bantu !!

Bagi saya, rusak: "moment": "^2.24.0" (menyelesaikan menjadi 2.25.0)
Tidak rusak: "momen": "2.24.0"

jika Anda menggunakan benang, tambahkan blok resolusi untuk mengganti versi sub-ketergantungan:

  "resolutions": {
    "moment": "2.24.0"
  }

Gunakan "moment": "2.24.0" dan seperti yang disarankan @rilyu , gunakan resolusi. Bekerja untuk saya.

Mengembalikan ke "2.24.0" dan menghapus "^" berhasil untuk saya. Sepertinya versi terbaru mereka didorong tadi malam dan membuangnya.

Menghadapi masalah dengan "moment": "^2.24.0", .
Uncaught Error: Cannot find module './locale' at

Masalah yang sama. Diselesaikan dengan solusi @enewhuis . Terima kasih!

Masalah yang sama. Diselesaikan dengan solusi @enewhuis . Terima kasih sobat.

Masalah terselesaikan dengan solusi

Masalah yang sama. @enewhuis solusi untuk menyelamatkan

Bagi saya, rusak: "moment": "^2.24.0" (menyelesaikan menjadi 2.25.0)
Tidak rusak: "momen": "2.24.0"

Terima kasih kawan, aku berjuang dengan ini sepanjang hari

Kesalahan yang sama dan perbaikan yang sama di sini. Saya menggunakan zona waktu-momen.

Sebelum:

    "moment-timezone": "^0.5.28",

Setelah:

    "moment": "2.24.0",
    "moment-timezone": "^0.5.28",

Kesalahan yang sama dan perbaikan yang sama di sini. Saya menggunakan zona waktu-momen.

Sebelum:

    "moment-timezone": "^0.5.28",

Setelah:

    "moment": "2.24.0",
    "moment-timezone": "^0.5.28",

Tidak bekerja untuk saya dengan -

    "moment": "2.24.0",
    "moment-timezone": "0.5.28",

Perbaikan di atas tidak bekerja untuk saya. Node v12.6.0, benang v1.22.4, skrip-reaksi-ts

Bekerja untuk kami dengan

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

dan

 "moment": "2.24.0",
  "moment-timezone": "0.5.28",

menggunakan benang

Itu tidak berfungsi tanpa blok resolusi.

Ya, saya dapat mengonfirmasi bahwa menambahkan blok resolutions berhasil untuk saya. Saya tidak tahu mengapa, meskipun ...

Terima kasih @mtogstad !

@mtogstad solusi bekerja!

Saya tidak mengerti bagaimana kesalahan ini dapat muncul secara acak dan merusak aplikasi reaksi saya

@bodyfarmer dapatkah Anda menuliskan langkah-langkah bagaimana Anda mengatasinya?
Saya menghadapi masalah yang sama dengan aplikasi reaksi.

@hasanmehmood Dalam kasus saya itu sudah cukup untuk membuat downgrade dependensi momen dengan cara ini di CMD:

npm install [email protected]

Semoga ini berhasil untuk Anda juga.

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.

Terima kasih, @jolalla , saya pertama kali mencoba menurunkan versi tetapi tidak berhasil untuk saya. Akhirnya menambahkan blok resolusi menunjukkan keajaiban :)

Untuk orang lain yang menghadapi masalah serupa dengan aplikasi reaksi mereka. Mereka dapat melakukan 2 langkah berikut untuk mengatasinya.

Dalam dependensi, ganti
"moment": "^2.24.0",
dengan
"moment": "2.24.0",

Dan tambahkan blok resolusi di package.json

"resolutions": {
    "moment": "2.24.0"
  }

Mengapa masalah ini ditutup!?!??!?

Waktu yang tepat untuk beralih ke luxon yang saya lakukan untuk satu proyek yang memiliki penggunaan momen yang rendah.

Memiliki masalah yang sama
"resolusi": {
"momen": "2.24.0"
}
memecahkan masalah saya.
Terima kasih.

Ada lagi yang bisa saya coba? "moment": "2.24.0" , dan
"resolutions": { "moment": "2.24.0" }
tidak memperbaikinya untuk saya. Ini untuk penyebaran Heroku. Setiap ide dihargai.

Jika kebetulan ada orang lain yang memiliki monorepo (dan/atau menggunakan ruang kerja di package.json), perbaikan 'resolusi' untuk menggunakan rilis momen sebelumnya 2.24.0 hanya akan berfungsi jika diterapkan di level root package.json. Dalam kasus kami, kami harus melakukan hal berikut:
{ “resolusi”: { “**/momen”: “2.24.0” } }.

Benar-benar berharap saat rilis 2.25 diperbaiki dengan benar ASAP!

jika Anda menggunakan benang, tambahkan blok resolusi untuk mengganti versi sub-ketergantungan:

  "resolutions": {
    "moment": "2.24.0"
  }

Saya sudah berurusan dengan ini selama satu jam. menghapus ^ membantu.

Untuk orang yang menggunakan create-react-app dan yang tidak ingin mengeluarkan CRA, Anda dapat menginstal:

Kemudian buat config-overrides.js di direktori root proyek Anda untuk penggantian lebih lanjut.

module.exports = function override(config, env) {
  // do stuff with the webpack config...
  return config;
};

Edit package.json Anda:

"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test",

Karena saya menggunakan desain semut config-overrides.js terlihat seperti ini:

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",
  })
);

Tetapi milik Anda akan lebih sederhana, seperti ini menurut saya:

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;
};

Terima kasih, @jolalla , saya pertama kali mencoba menurunkan versi tetapi tidak berhasil untuk saya. Akhirnya menambahkan blok resolusi menunjukkan keajaiban :)

Untuk orang lain yang menghadapi masalah serupa dengan aplikasi reaksi mereka. Mereka dapat melakukan 2 langkah berikut untuk mengatasinya.

Dalam dependensi, ganti
"moment": "^2.24.0",
dengan
"moment": "2.24.0",

Dan tambahkan blok resolusi di package.json

"resolutions": {
    "moment": "2.24.0"
  }

Bekerja untuk saya. Terima kasih

@hasanmehmood berhasil untuk saya, terima kasih

Terima kasih, @jolalla , saya pertama kali mencoba menurunkan versi tetapi tidak berhasil untuk saya. Akhirnya menambahkan blok resolusi menunjukkan keajaiban :)

Untuk orang lain yang menghadapi masalah serupa dengan aplikasi reaksi mereka. Mereka dapat melakukan 2 langkah berikut untuk mengatasinya.

Dalam dependensi, ganti
"moment": "^2.24.0",
dengan
"moment": "2.24.0",

Dan tambahkan blok resolusi di package.json

"resolutions": {
    "moment": "2.24.0"
  }

Bekerja untuk saya juga! Terima kasih!! :D

Telah melakukan ini selama berjam-jam di aplikasi angular 8 saya dengan npm.

  1. Saya memperbarui dari saat 2.17 ke 2.24
  2. Saya menambahkan resolusi seperti yang disarankan di atas - "devDependencies": {...},"resolutions": { "moment": "2.24.0" } ke package.json
  3. Diubah menjadi benang dengan melakukan hal berikut. rm -rf node_modules package-lock.json && yarn
    Terima kasih banyak teman-teman

Saya sangat putus asa... Saya menggunakan momen 2.25.1 dan mengubah "devDependencies": {...},"resolusi": { "moment": "2.25.1" } seperti di atas... tidak bekerja

saya menggunakan npm. saya seorang pemula dalam bereaksi di mana devDependencies?
saya telah mengubah ini tetapi masih tidak berfungsi
Capture

Saya menggunakan versi "2.25.1" dan masih terjadi!

@m4mariaoni - itu karena Anda menginstal tanpa --save-dev , jadi Anda mengubah bagian yang benar.

Jika Anda masih mengalami masalah ini setelah mengunci momen ke 2.24.0, hapus folder momen dari node_modules dan instal ulang paket Anda dengan npm install --save

Terima kasih, @jolalla , saya pertama kali mencoba menurunkan versi tetapi tidak berhasil untuk saya. Akhirnya menambahkan blok resolusi menunjukkan keajaiban :)

Untuk orang lain yang menghadapi masalah serupa dengan aplikasi reaksi mereka. Mereka dapat melakukan 2 langkah berikut untuk mengatasinya.

Dalam dependensi, ganti
"momen": "^2.24.0",
dengan
"momen": "2.24.0",

Dan tambahkan blok resolusi di package.json

"resolusi": {
"momen": "2.24.0"
}

Bekerja untuk saya juga! Terima kasih!! :D!berpikir!

Terima kasih, @jolalla , saya pertama kali mencoba menurunkan versi tetapi tidak berhasil untuk saya. Akhirnya menambahkan blok resolusi menunjukkan keajaiban :)

Untuk orang lain yang menghadapi masalah serupa dengan aplikasi reaksi mereka. Mereka dapat melakukan 2 langkah berikut untuk mengatasinya.

Dalam dependensi, ganti
"moment": "^2.24.0",
dengan
"moment": "2.24.0",

Dan tambahkan blok resolusi di package.json

"resolutions": {
    "moment": "2.24.0"
  }

Mengganti

"moment": "^2.24.0",

dengan

"moment": "2.24.0",

bekerja untuk saya! Biasa,
rm -rf package-lock.json && node_modules

Meski sudah melakukan semua langkah di atas, masih tidak berhasil ...

Ini membuat frustrasi

Repositori yang dibuat sebelumnya digunakan moment 2.24.0 dengan React, dan masih berfungsi, tetapi instal moment2.24.0 sekarang, tidak berfungsi.... (Saya sudah mencoba semua langkah di atas juga)

Apa penyebabnya?

Saya membayangkan Anda mungkin memiliki ^2.24.0 alih-alih 2.24.0 di suatu tempat di package.json @ wlsdud2194?

Saya tidak, dan masih kesalahan terus datang. Itu aneh

versi saat ini adalah 2.24.0 dalam package.json alih-alih ^2.24.0 yang sejak saya menginstalnya.

Saya mengikuti proses ini, salah satu langkah di atas

  1. tambahkan blok resolusi
  2. hapus direktori node_modules dan instal ulang paket dari benang.

bekerja untuk saya, tapi tidak tahu mengapa bekerja...😂

Terima kasih atas minatnya :) @agrohs

Harus menurunkan versi dari ^2.25.1 ke 2.24.0 untuk memperbaiki masalah

Saya tidak, dan masih kesalahan terus datang. Itu aneh

Coba jalankan npm ls moment untuk melihat apakah ada modul lain yang menggunakan momen juga

Dan tambahkan blok resolusi di package.json
"resolusi": {"momen": "2.24.0"}

hapus direktori node_modules dan instal ulang paket dari benang.

rm -rf package-lock.json && node_modules

Kontak: Tuan Liu Telp: 18908205973
Faks: 028-86676917
Email: [email protected]
Nama perusahaan: Chengdu Shouzhi Technology Co., Ltd. Situs web perusahaan: www.szdma.com
Alamat: Gedung Yinhai, No. 162, Jalan Timur Binjiang, Chengdu


Chengdu Shouzhi Technology Co., Ltd. didirikan pada tahun 2010. Ini adalah perusahaan pengembangan kustomisasi perangkat lunak profesional untuk usaha kecil dan menengah di Chengdu. Perusahaan ini terutama melayani usaha kecil dan menengah. Ini menyediakan konstruksi jaringan area lokal, situs web konstruksi, solusi kustomisasi perangkat lunak, dll., dan menyediakan layanan manual Satu set lengkap layanan untuk bisnis komputer. Perusahaan menganut prinsip "berbasis integritas, berorientasi layanan" untuk menonjolkan citra perusahaan; melalui upaya tak henti-hentinya kami, kami menyediakan layanan berkualitas tinggi kepada pelanggan.

Kami mendapatkan kesalahan Webpack Error: Cannot find module "./locale" . Kami menggunakan paket 'react-redux-i18n' dalam proyek kami yang memiliki ketergantungan pada 'react-i18nify' dan pada gilirannya memiliki ketergantungan pada 'momen'. 'Momen' internal dikonfigurasi untuk menggunakan versi terbaru yang menyebabkan kesalahan ini.

npm

Dalam dependensi
"bereaksi": "^16.8.1",
"momen": "2.24.0",
"zona waktu-momen": "^0.5.28",
"react-moment-proptypes": "^1.5.0",
"react-redux-i18n": "^1.9.3",
"react-redux": "^6.0.0",

Bantuan apa pun akan sangat dihargai.

Patch terbaru 2.25.3 tampaknya telah memperbaikinya, perbarui versi momentjs ke: "moment": "^2.25.3" di package.json
Hapus folder node_modules, dan jalankan yarn install atau npm install harus melakukannya.

Bagi mereka yang kehilangan kepercayaan diri pada saat itu, dan tidak ingin aplikasi mereka benar-benar berhenti dari masalah ini terjadi lagi di masa mendatang - saya mengganti basis kode berukuran sedang ke luxon tanpa terlalu banyak kesulitan.

Terima kasih orang...

Saya mengubah versi menjadi 24.0 dan menambahkan "resolusi": { "moment": "2.24.0" } dan menjalankan npm install

Kemudian sepertinya berfungsi lagi (omong-omong, bekerja dengan React).

Bersulang!

Patch terbaru 2.25.3 tampaknya telah memperbaikinya, perbarui versi momentjs ke: "moment": "^2.25.3" di package.json
Hapus folder node_modules, dan jalankan yarn install atau npm install harus melakukannya.

Terima kasih @jasontll , ini berhasil untuk saya

Tak satu pun dari solusi ini bekerja untuk saya hari ini.

Telah melakukan ini selama berjam-jam di aplikasi reaksi saya
dengan 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

itu juga bekerja untuk teman-teman terima kasih banyak :-)

Saya juga lari dalam masalah ini. Saya telah memperbaikinya dengan versi terbaru pada "moment": "^2.26.0"

Apakah halaman ini membantu?
0 / 5 - 0 peringkat