2016-05-16 11 views
2

私はTypescriptを知るまで私のWebアプリケーションをプレーンなjavascriptで記述していました。そのjavascriptと私didntの良いスーパーセットは、私はそれを書くとコンパイルし、私のWAMPサーバーを使用してそれを実行する場合、任意の問題があります。gulpとnodejsでTypescriptを使用している間、requireとexportsの定義されていない参照

しかし、私はangular2について聞いた(私はangular1を知っている)、私はhttps://www.lynda.com/AngularJS-tutorials/Learn-AngularJS-2-Basics/428058-2.htmlコースを使用してそれを学び始めた。

彼はnodejsがぶ飲み一息-ウェブサーバを使用しています。

typescript/ 
|--app/ 
----index.html, load animal.js, cat.js from js/ 
----|--js, contains all compiles js files(animal.js, cat.js) 
-------|--lib, contains all library files 
|--node_modules/ 
|--typescript/, contains my written typescript files 
---|--animal.ts 
---|--cat.ts 
|--typing/s, contains typescript definition files 
|--gulp.config.js 
|--gulpfile.js 
|--package.json 
|--tsconfig.json 
|--tslint.json 
:そして、私が最初にここに私のプロジェクトのディレクトリ構造がありますどのようにセットアップゴクゴク環境をへ https://www.youtube.com/watch?v=7xOubdqyqaY

から学習に切り替え、彼がやったように私は、正確なセットアップをしましたが、最後に、私は

Uncaught ReferenceError: exports is not defined @ animal.ts:1.
Uncaught ReferenceError: require is not defined @ cat.ts:1

を得ました

私がを実行すると、ルートフォルダ(typescript)でcmdでコマンドが実行され、すべてのタスクが実行され、すべてのtsファイルがコンパイルされ、lintされ、browser-syncおよび超静的。しかし、私は同じエラーに

Uncaught ReferenceError: exports is not defined @ animal.ts:1.
Uncaught ReferenceError: require is not defined @ cat.ts:1

を得た私のファイルの内容:

animal.ts

export class Animal { 
    constructor(private name: string, private sound: string) { 
    } 
    makeSound() { 
     console.log(`${this.name} makes ${this.sound}`); 
    } 
} 
let a: Animal = new Animal("tiger33", "Gurrrrrr"); 
a.makeSound(); 

cat.ts

import {Animal} from "./animal" 
let b: Animal = new Animal("Cat", "Mewww"); 
b.makeSound(); 

私は何を教えてください間違っている。 私はノード,gulp,tscをグローバルにインストールしています。 ブラウザまたはrequireJSをインストールする必要がありますが、ビデオではこれを使用していません。 ありがとうございます

+0

systemjsの入力を追加しましたか? –

+0

...しかし、第二のものでは、私はその必要はないと思いますか? –

+0

角度コースでは、彼はファイルをロードするためにsystemjsを使用していました。しかし、私がそれを使用したとき、私にエラーを与えて、未定義の分割プロパティを読み取ることができませんでした。だから私はロードするスクリプトタグをファイルに直接追加しました。それは私の問題ではない –

答えて

0

最後にBrowserifyを使用しています。

手順here