2015-10-01 11 views
5

現在、私はtscコンパイラを使用しています。それはうまく動作し、すべての定義ファイルをロードし、各angular2ファイルを正しくコンパイルします。しかし、シェルウィンドウを使用するのは非常に不快です。Angular 2にgulp-typescriptを設定するにはどうすればよいですか?

私の目標は、angularc2の定義に従って任意のタイスクリプトファイルを翻訳できるgulpタスクを作成することです。

var tsProject = $.typescript.createProject(paths.src + '/tsconfig.json'); 
gulp.task('typescript', function() { 
    gulp 
    .src([ 
     paths.src + '/*.ts' 
    ]) 
    .pipe($.typescript(tsProject)).js 
    .pipe(gulp.dest(paths.tmp)); 
}); 

そして、これは、フォルダ構造です:

... 
src/ 
---- app/ 
-------- ts/ 
------------ *.ts 
---- typings/ 
-------- angular2/ 
------------ angular2.d.ts 
------------ http.d.ts 
-------- es6-promise/ 
------------ ... 
-------- rx/ 
------------ ... 
-------- tsd.d.ts 
---- *.ts 
---- tsconfig.json 
gulpfile.js 
... 

はTSconfigのファイルにはfilesリストを持っていないので、コンパイラがすべき私が使いやすいようなので、これはコードで、gulp-typescriptを関与しましたsrc(任意のレベル)内のtsファイルを確認してください。

タスクが、私はこのエラーを受け取る呼び出されます。

error TS2307: Cannot find module 'angular2/angular2'. 
error TS2307: Cannot find module 'angular2/http'. 

私はd.tsファイルを使用するようにコンパイラを活字する伝えることができますどのように?

+1

あなたは= "タイピング/ angular2/angular2この ' '/// ' '? –

+0

このプロジェクトを見ると、役に立つかもしれません:[ng2-play.ts](https://github.com/pkozlowski-opensource/ng2-play.ts) –

答えて

3

あなたのファイルにまだamd-referenceを宣言していないようです。私はお勧め

/// <amd-dependency path="./src/typings/angular2/angular2.d.ts" /> 
/// <amd-dependency path="./src/typings/angular2/http.d.ts" /> 

import angular2 = require("angular2"); 
import http = require("http") 

/// <amd-dependency特別なモジュールがシステムに存在するコンパイラに指示し、エラー

+0

ありがとう!非常に簡単ですが、私はプロジェクトを開始したときにこれらの参照行を使用しましたが、 'tsc'も使用できませんでした。今私は再び歓迎を言うことができます! – Splact

+1

私はあなたを助けてうれしいです!:)幸運! –

1

せずにコンパイルする可能性を与える:

あなたのモジュールをインポートファイルにそのような何かを宣言する

てみてくださいがgulp.srcに定義を追加します。このようなもの:

var tsProject = $.typescript.createProject(paths.src + '/tsconfig.json'); 
gulp.task('typescript', function() { 
    gulp 
    .src([ 
     paths.src + '/app/**/*.ts', 
     paths.src + '/typings/**/*.d.ts' 
    ]) 
    .pipe($.typescript(tsProject)).js 
    .pipe(gulp.dest(paths.tmp)); 
}); 
0

これは私にしばらくの間呪いと誓っていました。あなたはtsconfig.jsonのcompilerOptionsノードでこれを持っていることを確認してください:

{ 
    "compilerOptions": { 
    "moduleResolution": "node", 
    } 
} 
関連する問題