2016-04-18 6 views
1

typescriptを使用しているモジュール1がtypescriptを使ってモジュール2を参照していて、typescriptを使用していて、両方ともnode.d.tsなどのtsdタイプを使用しているセットアップがありましたか?Typescriptノードモジュールが一緒に動作するようにする

モジュール2を必要とする限り、両方をコンパイルして使用するのに問題はありません。しかし、代わりにインポートを使用するとすぐに、両方のモジュールのソースファイルがインポートされるという重複した識別子の地獄になります例えば明らかに異なるパスからのnode.d.tsの入力。両方のプロジェクトのクラスは、例えば 'ストリーム'または 'ロダッシュ'を使用しているため、両方とも入力に使用して、///参照構文を使用します。両方のプロジェクトのtsconfigは入力を除外します。

答えて

1

これが尋ねられて以来、Typescriptは長い道のりを歩んできました。あなたはpackage.jsonに適切なファイルをリンクすることができます

{ 
    "main": "library-commonjs.js", 
    "module": "library-es6-module.js", 
    "typings": "library-commonjs.d.ts" 
} 

mainはCommonJSとNode.jsのモジュールの解像度を使用してパッケージで使用されます。 moduleは、ES6のインポートをサポートするパッケージによって使用されます。 typingsの後にTypescript(現在はTypescript 2.2)が続き、パッケージの型定義を解決します。

これで苦労した後、私はそれを正しく行う方法を示していtypescriptです定型/スタータープロジェクトを作成するいくつかの時間を費やし:

https://github.com/bitjson/typescript-starter

プロジェクトは、多くのドキュメント、のseveral examplesが含まれていることは、 typescriptプロジェクトからコードをインポートする方法。

0

編集:TS 2.2ではこれがかなり良くなっています。受け入れられた答えを見てください。

これは、まだtypescript 1.8.xでは実際には不可能なようです。しかし、彼らはhttps://github.com/Microsoft/TypeScript/issues/7156でそれに取り組んでいるようです。

また、この問題は、VScode(https://blogs.msdn.microsoft.com/vscode/2015/07/06/visual-studio-code-es6/参照)で使用するjsconfig.jsonを使用することで軽減されると思われます。残念ながら私はまだそれを働かせませんでした。

関連する問題