2017-09-08 9 views
1

初めてnpmパッケージ(ES6 + Babel)をビルドしています。エンドユーザーがインポートできるようにすべての接続に問題があります。JSプロジェクトの一部を適切にエクスポート/インポートする

私のビルド(出力)フォルダ構造は、srcと同じである:

build 
    - index.js 
    - BaseClass.js 
    sublclasses 
     - SubClassA.js 
     - SubClassB.js 

SubClassASubClassBインポートおよびBaseClassを拡張し、両方module.exportsを使用してエクスポートされます。エントリポイント、index.jsは、2つだけの行があります

import SubClassA from './subclasses/SubClassA' 
import SubClassB from './subclasses/SubClassB' 

package.json./build/index.jsからmainフィールドが設定されています。テストプロジェクトにプロジェクト(またはNPMのリンク)をインストールする場合

、私が書く:

import SubClassA, SubClassB from 'my-package' 

インポートは動作しますが、インポートされたクラスが定義されていません。私はそれをするためにいくつかの方法を試しましたが、うまくいきませんでした。

どうすればよいですか?

EDIT:それは一種の作品

import SubClassA from './subclasses/SubClassA' 
import SubClassB from './subclasses/SubClassB' 

module.exports = SubClassA 
module.exports = SubClassB 

:へindex.jsを変更した後。

import SubClassA, SubClassB from 'my-package' 

してから実行します:

let sca = new SubClassA() 

それはSubClassBであることが判明した「のようなものは、」私はそうのようなテストプロジェクトで両方のクラスをインポートする場合ことを意味します。インポートからSubClassBを削除すると、正常に動作します。

EDIT 2 - SOLUTION:以下のコメントで指示に従って

、私はそうのようなindex.jsファイルに変更しました:

export { default as SubClassA } from './subclasses/SubClassA' 
export { default as SubClassB } from './subclasses/SubClassB' 

を、私はそうのようなテストプロジェクトでそれをインポート:

import { SubClassA, SubClassB } from 'my-project' and it worked. 
+2

あなたがメインファイルからSubClassAとBを輸出していますか? – maioman

+0

@maiomanあなたは正しいですが、私のようにメインファイルにインポートするだけでは不十分です。それらを輸出し、再建し、それは働いたが、今度は新しいひねりを加えた。私は1分で私のアンカーを更新します。 – dnmh

+1

あなたは 'my-package''から 'import {SubClassA、SubClassB}'と一緒に使うべきです – maioman

答えて

1

問題は、メインファイルから何もエクスポートしていないということです。
es6インポート/エクスポートシンターを使用していますX君直接でそれをエクスポートすることができます。

export {default as SubclassA} from './subclasses/SubClassA' 
export {default as SubclassB} from './subclasses/SubClassB' 

、あなたには、名前の輸入を使用することができます。

{SubClassA, SubClassB} from 'my-package' 
+0

私はReadme(使用方法)も書いています。このようにエクスポートした場合でも、require( '...')構文でインポートできますか? – dnmh

+0

require/module.exportsはもともとモジュールに使用されているため、ノード環境内では使用できません – maioman

関連する問題