2016-08-07 23 views
0

私はtypescript、knockout、およびrequirejsを初めて使用しています。私はこのファイルを使っていくつかのデモを作成しました。さて、typescriptとknockoutjsを使ってマイナーなロジックを実装したいと思います。未知のReferenceError:定義が定義されていませんtypescript

私は内部的にインポートされた4-5種類のコピーを作成しました。私はhtmlファイルを実行します。私は、エラーが発生していると述べています。タイトル通りに

enter image description here 誰かがこのエラーで私を助けることができます。このコードでは何が欠けているのですか?

Googleで検索して、かなりの時間を費やしていますが、適切な解決策を見つけられませんでした。すべてのモジュールを定義するには、requireJSに関連している必要があります。しかし、それに追いつくことができない要求が新しくなりました。私は同様のエラーのためにstackoverflowを検索しましたが、それは私を助けません。

requireJS環境(技術的には、AMD環境)でを動作するコードを解決ここで

+0

'demotest.htm'ファイルを表示してください。 –

答えて

8

あなたの活字体が喜んでコンパイルしている、待っています。つまり、define/requireなどがすべて既に存在することを前提とした出力を生成します。

コンパイルされたコードに依存する前に、RequireJSを含める必要があるという全体的な答えがあります。

特に、エラーは、あなたがHTMLに<script src="my-compiled-code.js"></script>タグを持っている、RequireJSモジュールスクリプトに直接依存しているという別の間違いを示唆しています。それはどのようにモジュールが動作する必要はありません。代わりに、RequireJSを利用可能にしたら、RequireJSを設定する単一のトップレベル起動スクリプト(HTMLのインラインまたは別のファイル)を用意してから、require()がアプリケーションのトップレベルファイルを開始するようにしてくださいすべてオフ。このファイルは手作業で、またはRequireJSの "data-main"属性で読み込むことができます。

<!DOCTYPE html> 
<html> 
    <head> 
     <script data-main="scripts/main" src="scripts/require.js"></script> 
    </head> 
    <body> 
    </body> 
</html> 

これは、「スクリプト/ require.js」からRequireJSをロードしてから起動する「スクリプト/ main.js」で、スクリプトをロードするためにそれを伝えます:たとえば、最小限のHTMLのようなものに見える

読み込みプロセスをオフにします(おそらく、両方のパスを更新する必要があります。データメインに.js拡張子は必要ありません)。

メインスクリプトは、その後のような非常に単純なものでなければなりません:

// Set up any config you need (you might not need this) 
requirejs.config({ 
    basePath: "/scripts" 
}); 

// Tell RequireJS to load your main module (and its dependencies) 
require("mainmodule"); 

一般的に、それはあなたがここに戦っている活字体の問題はありません、それはRequireJSです。私はちょうど(純粋なJavaScriptで、それはより明確です)ちょうどそのビットを得ることができますので、残りの部分を追加することができますので、作業の例を見て、

+0

うん、あなたは正しい。問題は解決されました。間違いは、require.jsファイルとrequire.jsファイルですでに宣言されている他の2つのファイルの両方を含むことでした。問題はdemotest.htmにありました –

関連する問題