2016-08-30 7 views
2

私はそれを得ることはありません。これが比較的簡単になると、DefinitelyTypedからスニペットをダウンロードしました。グローバルに宣言されていると仮定して、スクリプトを追加しました。今では、複雑なパッケージマネージャと非同期ローディングシステムを使用して、おそらく生産用のオプティマイザを使用するという選択肢がないようです。Bluebirdを現在のTypeScriptで使用するには?

理想的には、私はちょうどこの

// maybe some import? 
Promise.resolve("foo").then(function(msg) { 
    console.log(msg); 
} 

のようないくつかの活字体のコードは、このようないくつかのJavaScriptにコンパイルしたい:私はブラウザまたは最小限の環境で実行できるようにしたい

Promise.resolve("foo").then(function(msg) { 
    console.log(msg); 
} 

をRhinoのように。必要に応じてrequire.js、almond.js、browserifyなどでビルドすることができますが、XHRを必要とせずに動作させたいと思っています。

は、これまで私が試してみた:

  • グローバル(環境)モジュールを使用する:もうブルーバードのための1つを見つけることができませんでした。
  • AMDモジュールでES6のインポートを使用して、outFileを設定してコードのバンドルを取得し、次にこの順序でファイルを含めるようにします:almond.js、bluebird.js、my-code.js、およびメインモジュールが必要なコードError: See almond README: incorrect module build, no module name(明らかに、公式ページからダウンロードしたものは、AMDの名前を定義していないので、自分で作成するのか、それとも...?)
  • 完全なrequire.jsを使って前の点と同じです:missing bluebird
  • このようなシムと同じ点:requirejs.config({shim: { bluebird: { exports: "Promise" }}})exception from uncaught JavaScript throw: Error: Mismatched anonymous define() moduleとエラーメッセージのBluebirdのコード全体が同じです。
  • ブルーバード定義ファイルのパッチ適用:ES6モードでは使用できません:Subsequent variable declarations must have the same type.

を、私は、このような一見単​​純な要求のためにあまりにも多くの時間を無駄にしたような気がしたので、私はStackOverflowのを求めてみます:)

+0

あなたは(https://webpack.github.io/)と[TS-ローダー] [WebPACKの]しようと考えている(https://github.com/TypeStrong/ts -ローダ)?私がブルーバードを必要とするところでは、私は 'promise = require(" bluebird ")' – Granga

+0

をインポートするだけです。これは伝えられるところによるとウェブパックを避けました。 XHRなしでプロジェクトを実行するために単一(または少数)のファイルを生成することはどれほど難しいでしょうか? – Alicia

答えて

4

DTのグローバル宣言ファイルを使用する代わりに、代わりにモジュール宣言ファイルをインポートしてtypingsを使用することをお勧めします。

例:ブルーバードの場合は、ちょうどtypings install bluebirdです。このコードは私のために罰金コンパイル:

import Promise = require('bluebird') 
Promise.resolve("foo").then(function (msg) { 
    console.log(msg) 
}) 
+0

実際にどのようにコードを実行しますか? – Alicia

+0

コンパイル済みのjsを意味しますか?ほぼすべてのコードとコマンドを持つ要点があります:https://gist.github.com/pellejacobs/6b5dcf77c4b7713e5635564adcedd718これはあなたの質問に答えますか? –

+0

私の意図は、ノードではなく埋め込みJavaScriptインタプリタで実行することです。基本的なJavaScript環境(例えば、あまりDOMを使用せずにブラウザコンソールなど)で動作していたものは問題ありませんが、CommonJS環境を自分で実装すると、作業が必要になります。それはbrowserifyと一緒にバンドルすることができればうまくいくでしょう。 – Alicia

関連する問題