2016-11-30 4 views
0

単純なAngular 2 + Webpackの作業プロジェクトから、私はApache ThriftをThriftのチュートリアルを実装して統合しようとしています。私はすべてがブラウザ以外作品のポイントは、スリフトモジュールを見つけることができません達する:Angular 2とwebpackで動くように倹約する方法は?

InvalidOperation = function(args) { 
    this.whatOp = null; 
    this.why = null; 
    if (args) { 
    if (args.whatOp !== undefined && args.whatOp !== null) { 
     this.whatOp = args.whatOp; 
    } 
    if (args.why !== undefined && args.why !== null) { 
     this.why = args.why; 
    } 
    } 
}; 
Thrift.inherits(InvalidOperation, Thrift.TException); 

Uncaught ReferenceError: Thrift is not defined 

エラーが倹約からスローされたファイル、tutorial_types.js、それは倹約モジュールにアクセスしようとする生成

Angularは、Thriftをロードしようとする生成されたファイルをロードして失敗するアプリケーションをロードします。

プロジェクトがここにあります:https://github.com/osechet/angular-thrift

、テストを実行するには:

git clone https://github.com/osechet/angular-thrift 
cd angular-thrift 
npm install 
npm gen.thrift 
npm start 

次にブラウザでhttp://localhost:8080/を開きます。

私はWebpackによって作成されたファイルをチェックして、スリフトモジュールがバンドルされています。私は何が欠けていますか?

+0

あなたの質問にエラーを投げかけているコードの部分を追加することができれば助かります。あなたのプロジェクトをインストールして、それを実行することを人々に求めるのはたくさんあります。 –

+1

@JoeClayそうです。私はそれについての説明を加えました。 – osechet

+1

Hm、Thriftは実際に生成されたファイルにインポートされますか?もしそうでなければ、おそらく物事が失敗しているのでしょう。 Thriftが 'var Thrift = require(" thrift ");を使ってファイルを生成する方法や、ファイルの1つからインポートして地球環境に接続する方法('窓。休憩)。 –

答えて

1

@ JoeClayの発言のおかげで、私は問題を発見しました。 Thriftで提供されているJavascriptライブラリはモジュールをエクスポートしないため、Webpackによって適切にバンドルされていません。

私は、Thrift(thrift/lib/nodejs/lib/thrift/browser.js)が提供するnodejsライブラリのブラウザモジュールを使用するようにプロジェクトを変更しました。そうすることで、アプリケーション全体を動作させることができました。

+0

私が助けることができる喜んで:) –

関連する問題