2016-09-26 19 views
3

私のアプリには3つのタイプスクリプトファイルがあります。 3つのJSファイル出力のそれぞれについてコンパイルされたTypeScriptで「require is not defined」というエラーについて何ができますか?

ReferenceError: require is not defined

をTSのコンパイルから:私が得るので、私はビルドすると、彼らは罰金コンパイル、ガルプは正しい場所にそれらを置くと、アプリがクラッシュします。今私はよくtsc "requireを使用しないでください"と言うことができない、できますか?

私は、そのファイルで、その後require作品、gulpFile.jsを参照

<reference path="~/wwwroot/js/system.src.js" /> 

を追加し、それは、ブラウザ上で私のビルドではなく、実行時に実行されています。コンパイルされたJSファイルの1つに追加すると動作しません。

答えて

2

アプリケーションをロードする前に、使用するindex.htmlや何らかのcshtml Razorテンプレートにいくつかのファイルを手動で含める必要があります。これは次のようになります

<!-- 1. Load libraries --> 
<!-- Polyfill(s) for older browsers --> 
<script src="~/lib/core-js/client/shim.min.js"></script> 
<script src="~/lib/zone.js/dist/zone.js"></script> 
<script src="~/lib/reflect-metadata/Reflect.js"></script> 
<script src="~/lib/systemjs/dist/system.src.js"></script> 

<!-- 2. Configure SystemJS --> 
<script src="~/app/system.config.js" asp-append-version="true"></script> 
<script> 
    System.import('app').catch(function(err){ console.error(err); }); 
</script> 

この順序は重要です。これは、アプリケーションを実行するために必要です。

Visual Studioでエラーが発生した場合は、必要な「入力」が表示されないことがあります。

これまでは、入力をインストールする必要がありました(nodejsページからnodejsをインストールしてshell/powershell /コマンドラインでグローバルに使用できるようにする必要があります)。npm install typings -gを実行して入力をインストールし、 typings install dt~node,typings install dt~jasmineおよびtypings install dt~core-jsを実行します。これにより、入力ファイルがtypingsフォルダにインストールされます。すなわちnpm install -s @types/nodenpm install -s @types/jasminenpm install -s @types/core-jsnpm install -s @types/<nameofthelibrary>を:

は活字体2.0で次のコマンドを実行して、タイピングの必要性(活字体2.0アナウンスhere参照)O/W NPMを介して型定義をインストールする新しいあります。

requireの方法は、ノード入力の中のindex.d.tsファイルのdeclare var require: NodeRequire;に示されているように、nodeパッケージ/タイピングで定義されています。

関連する問題