2016-05-02 28 views
0

Visual Studio 2015 Enterprise(Update 2がインストールされています)で、テンプレートから新しいTypeScriptプロジェクトTypeScriptHTMLApp1を作成しました。その後、新しいTypeScriptファイルlog.tsを作成し、https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md#11.3のサンプルコードをその新しく作成したファイルにコピーしました。Visual Studio 2015 Update 2のタイプスクリプトモジュール - 'require'が定義されていません

// -------- log.ts -------- 
export function message(s: string) { 
    console.log(s); 
} 

次に、私はapp.tsファイルの先頭に次のコード行をコピーしました。

// -------- app.ts -------- 
import { message } from "./log";  
message("hello"); 

class Greeter { 
    element: HTMLElement; 

私は(マイクロソフトのVisual Studio IDE内から)Internet Explorerでこのプロジェクトを実行しようとすると、私は次のエラーメッセージが表示されます。

Unhandled exception at line2, column 1 in http://localhost:20728/app.js 
0x800a1391 - JavaScript runtime error: 'require' is undefined 

答えて

1

をあなたはrequirejsを含めるか、スクリプトをバンドルする必要がありますwebpackとなります。 TypeScriptはモジュール構文を提供し、requireコールにコンパイルしますが、ランタイムモジュールローダーは提供しません。スクリプトを動作させるには、それをページに含める必要があります。

ブラウザでは、--module flagを指定し、使用しているモジュールのタイプを指定してください。 webpackで実行しているコードは通常es6、requirejsを使用している古いコードはamd/umdになります。

あなたはTSコンパイラの出力を見ている場合、あなたは

import {foo} from './bar'; 

define(["require", "exports"], function (require, exports) { 
    "use strict"; 
}); 

になっていることがわかりますがdefineとモジュール"require""exports"が定義されてないあることに注意しましょうコンパイラによって。

ノード環境で実行している場合、nodejsランタイムはcommonjs moduleロードに必要な機能を提供します。

関連する問題