2016-07-04 97 views
2

誰かがTypeScript 1.8モジュールについて少し気をつけていただければ幸いです。Typescriptモジュール:定義が定義されていません

私はSomeClass.tsファイルがあります:

export class SomeClass { 

} 

をしてから、私のapp.tsに私は工assインポート:私が構築し、AMDとCommonJSモジュールシステム、ES5の対象と

import {SomeClass} from "./SomeClass"; 
var xxx = new SomeClass(); 

両方を私はブラウザでそれを開く場合は、 "定義されていない定義"または "必要が定義されていません"エラーが発生します。

これが機能するには、いくつかのライブラリを追加する必要がありますか?

+0

あなたはES5 commonjsをターゲット場合、それが動作するはずです。 – AlexG

+0

あなたのページにライブラリスクリプトを実際にロードする必要があります –

答えて

2

モジュールシステムを「amd」に設定します。 requirejsをダウンロードし、HTMLに含めます。

<script data-main="scripts/app" src="scripts/require.js"></script> 

data-main属性に注目してください。その値はあなたの場合 "app"のパス+モジュール名です。 Requirejsはあなたのモジュールをフェッチするので、別のスクリプトタグに含めないでください。

+0

私はインポートでtypescriptモジュールを使用する場合には、必ずrequireを使用する必要がありますか?すべてのプロジェクトを1つのファイルにコンパイルして旧式の方法で使用する方法はありますか?私はVisual Studioを使用しています。 – zeroin

+1

basaratの答えをご覧ください。 Webpackは、エントリモジュール(あなたの場合はapp.js)を指定した後、すべてのモジュールのバンドルを生成できます。 webpackを使用することにした場合、requirejsは必要ありません。 – Granga

1

これが機能するにはいくつかのライブラリを追加する必要がありますか?

はい。ただし、プロジェクトとともにライブラリを簡単にバンドルすることもできます。例えば。 commonjs(完全にnpmを使用できます)を使用し、webpackでコンパイルしてください。

もっと

クイックスタート:https://basarat.gitbooks.io/typescript/content/docs/quick/browser.html

+1

ありがとう、私は試してみます。しかし、私はVisual studioを使用しており、この長いプロセスがなくてもプロジェクトを実行してコンパイルできると期待しています。依存関係のない単一のファイルを取得することもできますが、これは不可能です。 – zeroin

+1

@zeroin、はい、可能です。それはまさにwebpackのことです。あなたのコードと一緒に依存関係を含む大きなバンドル。 – Granga

+1

VSの使い方について@zeroin:** npm **に精通することをお勧めします。タスクは、[NPM Task Runner](https://visualstudiogallery.msdn.microsoft.com/8f2f2cbc-4da5-43ba-9de2-c9d08ade4941)のようなcmdまたはアドオンから実行できます。 webpackを使うことにした場合、実行する必要のあるコマンドは 'webpack'だけです。 – Granga

関連する問題