2017-09-13 8 views
2

NPMモジュールとして公開しているTypeScriptプロジェクトがあります。プロジェクトのコンパイル結果はディレクトリ{mymodule}/dist/src/...にあります。つまり、パブリッシュすると、NPMモジュールも上記のファイル構造になります。公開されたNPMモジュールのファイル構造を平坦化する方法

これの欠点は、個々のモジュールを必要とする必要があるとき、それは次のようになります:私は、公開モジュール、公表モジュール内のファイルは、意志の出力を平らにしたいと思います

var individualModule = require('/dist/src'); 

ルート・ファイルでこれを行うための正しい方法は、意図的に module.exports(または import/export)を介して、あなたのパッケージからモジュールを公開することです {mymodule}/...の代わりに、私の意見では {mymodule}/dist/src/...

答えて

1

なります。

const exposableOne = require('/dist/src/ex-1.js'); 
const exposableTwo = require('/dist/src/ex-2.js'); 

// ... 

module.exports = { mymodule, exposableOne, exposableTwo }; 

あなたはメインExpress framework fileを見てみることができます - 彼らはexports.ディレクティブを使用して、ほぼ同じことをやって。

正確にはTypeScriptのものではありませんが、アイデアはかなり一般的です。

UPDATE:

あなたは本当にあなたがシンボリックリンクのアプローチを使用することができますよりも、require/exportsを経由して結合することなく、これを行うために必要がある場合。このオプションがすべてのプラットフォームでうまく動作するかどうかはわかりませんが、例としてGitHubのsolved issuethis repositoryを確認できます。後者のaliasesディレクトリには、recipesディレクトリモジュールにシンボリックリンクされているファイルが含まれています。

+0

これは実際に私の現在の設定を説明していますが、私の希望する設定ではありません。この設定では、私のライブラリを使用しているコードは 'var mylib = require( 'mylib')。exposableOne'のような処理をしなければならないでしょう...これは私が望むものではありません。 'var exposableOne = require( 'mylib/exposableOne')' – dade

+0

@ dade:答えの更新をご覧ください。 – Nevertheless