私が正しく再利用可能なcommonjsライブラリ(NPMパッケージ)を開発するためにいくつかのガイダンスを必要としています。Commonjsライブラリのindex.ts外部モジュールとして
—lib
——Helper.ts
——Serialization.ts
——meta
——— Entity.ts
—index.ts
などなど: は、ライブラリの構造は以下であると言うことができます。各ファイルは外部モジュールです。
ここでは、ライブラリの機能を公開し、エントリポイントとして機能するエントリファイル(index.tsなど)を作成する必要があります。 ここで私は、それを作成する方法のまわりで私の頭をラップすることはできません。
export * from './lib/Helper’;
export * from './lib/Serialization’;
export * from './lib/meta/Entity’;
…
原因これは論理グループを削除しますし、可能な名前に将来のリードが
を競合に私もインデックスを持つようにしようとしていることができます:私はすべてをエクスポートすることによって、それを平坦化することなく、ネストされた構造を維持したいと思います。
import {Helper} from './lib/Helper';
import * as Serialization from './lib/Serialization';
import * as Decorators from './lib/meta/Decorators';
let core = {
Helper: Helper,
Serialization: Serialization,
Meta: {
Entity: Entity,
}
}
export default core;
私はこのようなインポートのタイプを消費するために来るまで、それは完璧に動作します:
import Core from ’nameOfTheNpmPackage';
let Entity = Core.Meta.Entity;
function f(e: Entity)//<—This produce error cannot find name ‘Entity'
{
}
このようなTS彼らは型宣言空間ではないとして
(彼らは名前空間に含まれていない場合はそこにそれらをコピーする方法はありますか?)
私は全体のライブラリによってのための単一d.tsファイルを生成しているしようとした別のオプションoutFile + amdを使用します。しかし、そのファイルは外部モジュールではありません。
私の質問は - どのように外部モジュールとライブラリに公開されているすべての機能をエクスポートするようにindex.tsを書くことが可能です。
ありがとうございます。無駄な時間の