<p>momen tidak memiliki anggota default</p>

Dibuat pada 9 Jan 2018  ·  4Komentar  ·  Sumber: moment/moment

Deskripsi Masalah dan Langkah Reproduksi:
Mencoba mengimplementasikan lokal instance dalam proyek TypeScript
https://momentjs.com/docs/#/i18n/instance -locale/
tetapi ketika saya import moment from 'moment' saya mendapatkan kesalahan:
moment has no default export

tujuan:
Saya memerlukan formulir khusus (mempersingkat, seperti 'detik' alih-alih 'detik') dari string manusiawi di beberapa bagian aplikasi, jadi saya ingin menggunakan dua lokal dalam satu tampilan.

Lingkungan:
proyek naskah

Informasi lain yang mungkin berguna:
TypeScript, Angular4

Jika Anda melaporkan masalah, jalankan kode berikut di lingkungan yang Anda gunakan 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)
Tue Jan 09 2018 15:46:46 GMT+0100 (CET)
VM12667:2 09/01/2018, 15:46:46
VM12667:3 -60
VM12667:4 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36
VM12667:5 Uncaught ReferenceError: moment is not defined
    at <anonymous>:5:13



md5-1f8dcc13f1f8244065e29a6dcf5a9efa



import * as moment from 'moment';
console.log('version', moment.version);



md5-1f8dcc13f1f8244065e29a6dcf5a9efa



version 2.20.1

Saya ingin mencegah solusi import * as moment from 'moment'; karena memblokir tiga guncangan dalam bundling

Terimakasih banyak! :)

Komentar yang paling membantu

RTFM 😂

Note: If you have trouble importing moment, try adding 
"allowSyntheticDefaultImports": true in compilerOptions 
in your tsconfig.json file and then use the syntax

https://momentjs.com/docs/#/use -it/typescript/

Semua 4 komentar

RTFM 😂

Note: If you have trouble importing moment, try adding 
"allowSyntheticDefaultImports": true in compilerOptions 
in your tsconfig.json file and then use the syntax

https://momentjs.com/docs/#/use -it/typescript/

Apakah ada kemungkinan bahwa ini akan diselesaikan dengan cara di mana allowSyntheticDefaultImport tidak lagi diperlukan? Masalah dengan mengharuskannya adalah mengharuskan semua orang yang menggunakan momen untuk juga mengaktifkan pengaturan ini.

Dengan tidak memerlukan pengaturan ini, Anda mengizinkan moment untuk dengan mudah digunakan dalam proyek yang memiliki preferensi sendiri untuk allowSyntheticDefaultImport , tetapi sekarang pengaturan itu secara efektif dipaksakan pada semua orang.

Hanya menimpali di sini bahwa ini adalah masalah yang benar-benar menjengkelkan. Karena momen telah memilih untuk tidak menghormati spesifikasi resmi, itu berarti bahwa beberapa perpustakaan menarik melalui import * as moment from "moment" sementara perpustakaan lain dijalankan melalui import defaultMoment from "moment" . Jadi, ketika proyek saya mencoba memuat keduanya, saya tidak bisa mendapatkan pengaturan yang tepat untuk mendapatkan rollup untuk mengompilasinya dengan benar. Saya sudah mencoba hampir setiap permutasi dan kombinasi allowSyntheticDefaultImports : true , esModuleInterop : true , moduleResolution : "node" dan skipLibCheck : true dan saya tidak bisa mendapatkan permutasi yang berfungsi dengan benar. Satu solusi akan memungkinkan satu perpustakaan dengan satu format impor berfungsi, tetapi gagal di yang lain.

Ada alasan mengapa spesifikasi itu ada, dan itu untuk menciptakan konsistensi. Apakah tidak mungkin momen itu memiliki varian momen-es atau sesuatu yang dapat diimpor dengan benar, sehingga orang yang ingin mengikuti spesifikasi dapat mengikuti spesifikasi, memungkinkan rantai alat JS berfungsi seperti yang diharapkan, daripada semua hack?

+1

Apakah halaman ini membantu?
0 / 5 - 0 peringkat