2016-03-15 15 views
5

私はライブラリ全体に対して単一の.jsファイルと.dファイルを作成しようとしています。 これは私のpackage.jsonです:commonjsの単一の.jsファイルと.dファイル

{ 
    "compilerOptions": { 
     "module": "commonjs", 
     "target": "es6", 
     "noImplicitAny": false, 
     "outDir": "build", 
     "sourceMap": true, 
     "removeComments": true, 
     "watch": false, 
     "declaration": true, 
     "outFile": "file.js" 
    }, 
    "exclude": [ 
     "node_modules", 
     "build" 
    ] 
} 

が、私はtscを実行すると、私はこのエラーを取得:error TS6082: Only 'amd' and 'system' modules are supported alongside --outFile.

だから、私はこれをどのように行うことができますか?

答えて

2

これは概念的なものです。 Commonjsモジュールは、それらを1つのファイルに連結する方法では解決されません。詳細については、活字体の問題でこのスレッドを参照してください:

https://github.com/Microsoft/TypeScript/issues/7252

あなたがcommonjsとしてあなたのライブラリーを構築する場合、あなたはもちろん、すべての他のファイルをインポートしているので、別のキーの下に部品を輸出して、いくつかのインデックスファイルを提供することができますlib全体またはその一部だけをインポートすることができます。

+0

これは.tsには意味がありますが、.d?させる? – MuriloKunze

+0

それは同じ理由です。定義ファイル(* .d.ts)をすべてのモジュールに直接アライメントすることで、TypeScriptコンパイラは、モジュールのコンシューマが使用する定義の一部だけをインポートできます。物事を分割する理由の詳細については、この記事を参照してください:https://medium.com/@mweststrate/how-to-create-strongly-typed-npm-modules-1e1bda23a7f4#.2xayimlpn –

+0

申し訳ありませんが、私は理解していませんこの。あなたは何を達成したいですか?コモンズを使用している理由は何ですか?あなたはノードまたはブラウザをターゲットにしていますか? –

関連する問題