web-dev-qa-db-ja.com

ES6で複数の変数をエクスポートしますか?

ES6で複数の変数をエクスポートしようとしています。

exports.js

var TestObject = Parse.Object.extend('TestObject')
var Post = Parse.Object.extend('Post')

export default TestObject
export Post

main.js:

import TestObject from '../store'
import Post from '../store'

var testObject = new TestObject() // use Post in the same way
testObject.save(json).then(object => {
  console.log('yay! it worked', object)
})

デフォルト値が1つしかないことを理解しているため、最初の項目でdefaultのみを使用しました。

ただし、次のエラーメッセージが表示されます。

Module build failed: SyntaxError: /home/alex/node/my-project/src/store/index.js: Unexpected token (9:7)
   7 | 
   8 | export default TestObject
>  9 | export Post

多分私はそれを間違った方法でやっていますか?

24
alexchenco

これは有効な構文ではありません。できるよ

export {Post}

または単に

export var Post = Parse.Object.extend('Post')

またはファイル全体を

export default Parse.Object.extend('TestObject')
export var Post = Parse.Object.extend('Post')

インポートも正しくありません。

import TestObject, {Post} from '../store'

これは、単一のデフォルトエクスポートと個別の名前付きエクスポートが本当に必要な場合です。また、2つの名前付きエクスポートを作成し、必要に応じてデフォルトを持たないこともできます。

export var TestObject = Parse.Object.extend('TestObject'),
    Post = Parse.Object.extend('Post')

そして

import {TestObject, Post} from '../store'
47
loganfsmyth

ES6では、このような複数のオブジェクトをエクスポートできます

var TestObject = Parse.Object.extend('TestObject')
var Post = Parse.Object.extend('Post')

export {
    TestObject,
    Post
}

次に、インポートするときに次のようにします。

import { TestObject, Post } from './your-file';

import および export に関するすべてをここで読むことができます。

24
Mario Tacke