Saya mencoba membuat modul yang mengekspor beberapa kelas ES6. Katakanlah saya memiliki struktur direktori berikut:
my/
└── module/
├── Foo.js
├── Bar.js
└── index.js
Foo.js
dan Bar.js
masing - masing mengekspor kelas ES6 default:
// Foo.js
export default class Foo {
// class definition
}
// Bar.js
export default class Bar {
// class definition
}
Saat ini saya sudah index.js
menyiapkan saya seperti ini:
import Foo from './Foo';
import Bar from './Bar';
export default {
Foo,
Bar,
}
Namun, saya tidak dapat mengimpor. Saya ingin dapat melakukan ini, tetapi kelas tidak ditemukan:
import {Foo, Bar} from 'my/module';
Apa cara yang benar untuk mengekspor beberapa kelas dalam modul ES6?
javascript
module
export
ecmascript-6
babel
Sekelilingnya
sumber
sumber
export
tanpa defaultdefault
ekspor. Bayangkan jika seseorang mencoba melakukannyaimport SomeClass from 'my/module'
. Ini secara otomatis akan mengimpordefault
modul dari jalur itu. Jika Anda memiliki beberapa ekspor default di sana, bagaimana ia tahu mana yang akan diimpor?Jawaban:
Coba ini di kode Anda:
Btw, Anda juga bisa melakukannya dengan cara ini:
Menggunakan
export
Perbedaannya
export default
adalah Anda dapat mengekspor sesuatu, dan menerapkan nama tempat Anda mengimpornya:sumber
Unexpected token
kesalahan saat membangunexport Foo from './Foo'; export Bar from './Bar'
export { default as Foo } from './Foo';
. Saya pernah melihatnya di tempat lainexport { default as Foo } from './Foo';
diharuskan untuk benar-benar mengekspornya.Semoga ini membantu:
sumber
@ webdeb menjawab tidak bekerja untuk saya, saya menemukan
unexpected token
kesalahan ketika mengkompilasi ES6 dengan Babel, melakukan ekspor bernama default.Namun ini berhasil bagi saya:
sumber
sumber
Untuk mengekspor instance kelas Anda dapat menggunakan sintaks ini:
sumber