Moment: Modul tidak ditemukan: Kesalahan: Tidak dapat menyelesaikan '../moment' dengan Webpack dan TypeScript

Dibuat pada 11 Jan 2019  ·  9Komentar  ·  Sumber: moment/moment

Jelaskan bugnya

Jika saya mencoba mengkompilasi aplikasi TypeScript saya dengan webpack, saya mendapatkan kesalahan untuk setiap lokal yang '../moment' tidak dapat diselesaikan.

Kesalahan ini diulang untuk setiap lokal lainnya:

ERROR in ./node_modules/moment/locale/km.js
Module not found: Error: Can't resolve '../moment' in 'C:\PROGS\dev\var\private\moment-test\node_modules\moment\locale'
 @ ./node_modules/moment/locale/km.js 5:50-70
 @ ./node_modules/moment/locale sync ^\.\/.*$
 @ ./node_modules/moment/moment.js
 @ ./src/app.ts

Untuk Mereproduksi

src/app.ts

import * as moment from "moment";
console.log(moment().format("YYYY"));

package.json

{
    "private": true,
    "dependencies": {
        "moment": "2.23.0"
    },
    "devDependencies": {
        "awesome-typescript-loader": "5.2.1",
        "typescript": "3.2.2",
        "webpack": "4.28.3",
        "webpack-cli": "3.2.1"
    }
}

tsconfig.json

{ "include": [ "./src/" ] }

webpack.config.js

module.exports = {
    entry: "./src/app.ts",
    output: { filename: "bundle.js" },
    resolve: { extensions: [".ts"] },
    module: { rules: [ { test: /\.ts$/, use: { loader: "awesome-typescript-loader" } } ] }
}

Perilaku yang diharapkan

yarn run webpack -p akan bekerja tanpa kesalahan.

Lingkungan spesifik momen

  • Windows 10
  • Simpul 10.15.0
  • momen 2.23.0
  • TypeScript 3.2.2
  • Paket Web 4.28.3
  • Zona waktu: CET (UTC+1)

Silakan jalankan kode berikut di lingkungan Anda dan sertakan hasilnya:

console.log((new Date()).toString())
console.log((new Date()).toLocaleString())
console.log((new Date()).getTimezoneOffset())
console.log(navigator.userAgent)
console.log(moment.version)

Kode ini gagal dengan kesalahan yang sama!

Komentar yang paling membantu

Saya menghadapi masalah yang sama, inilah masalahnya-

  • Saya menginstalnya menggunakan perintah khusus npm i --save react-moment , yang baru saja ditambahkan dalam file package.json tetapi lib tidak ada di node_modules, jadi untuk melakukannya saya mengeksekusi
  • npm install --save moment react-moment
  • dan sekarang berfungsi seperti yang diharapkan.

Semua 9 komentar

Terima kasih telah membuka permintaan ini.
Ini adalah pertanyaan yang bagus untuk Stack Overflow .

Ini adalah bug, bukan? Stack Overflow bagus untuk dipertanyakan, tetapi tidak ada yang akan memperbaiki bug di sana.

Saya menafsirkan jawaban Anda berarti bahwa Anda tidak mendukung WebPack dengan TypeScript. Sayang sekali!

Ada berbagai tutorial di internet tentang penggunaan Moment dengan Webpack dan TypeScript. Tampaknya banyak orang lain menggunakannya bersama-sama dengan baik. Jika lebih banyak orang memiliki masalah ini, dan ada pengetahuan komunitas yang cukup untuk memperbaikinya, maka kita dapat mencoba melakukannya.

Omong-omong, saya memiliki masalah yang sama - tampaknya disebabkan oleh lokal momen, yang tidak saya pedulikan. Saya menemukan solusi di artikel online ini , yang cukup baik dalam kasus saya, untuk mengabaikan plugin lokal:

plugin: [webpack baru.IgnorePlugin(/^.\/locale$/, /moment$/)]

Ini sepertinya skenario penggunaan yang cukup umum, jadi saya sarankan untuk menautkan ke halaman di atas dari bagian TypeScript dari docs .

@authguidance-examples PR diterima di https://github.com/moment/momentjs.com !

Saya menghadapi masalah yang sama, inilah masalahnya-

  • Saya menginstalnya menggunakan perintah khusus npm i --save react-moment , yang baru saja ditambahkan dalam file package.json tetapi lib tidak ada di node_modules, jadi untuk melakukannya saya mengeksekusi
  • npm install --save moment react-moment
  • dan sekarang berfungsi seperti yang diharapkan.

ada yang tahu kenapa selalu muncul seperti "beberapa detik yang lalu"? tanggal berapapun itu

saya menambahkan momen di reactjs : import * as moment from "moment"; dan dalam injeksi ketergantungan ditambahkan: "momen": "2.23.0", tetapi mendapatkan

kesalahan tidak terdefinisi ... di reactjs,
Mohon bantuannya...

Mengapa cabang ini tidak ditutup? Komentar terakhir pada 2 Desember 2019. @marwahaha

Apakah halaman ini membantu?
0 / 5 - 0 peringkat