2016-02-25 60 views
4

我有我的應用程序中排除文件夾的問題。我正在使用gplp打字稿進行編譯和tsconfig文件。問題在於仍在編譯的node_modules文件夾。Gulp typescript tsconfig與Angular2

這裏是我的gulpfile:

var tsProject = ts.createProject('tsconfig.json', { typescript: require('typescript') }); 

gulp.task('tscompile', function() { 
var tsResult = tsProject.src("./angular/**/*.ts") // instead of gulp.src(...) 
    .pipe(ts(tsProject)); 

return tsResult.js.pipe(gulp.dest('./')); 

});

tsconfig內容:

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "system", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false 
    }, 
    "exclude": [ 
    "node_modules", 
    "Scripts" 
    ] 
} 

而我的任務運行控制檯:

角\ chatApp.ts(5,21):錯誤TS2305:模塊「「C:/項目/ hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/core「'沒有導出成員'範圍'。 angular \ nominationApp.ts(1,21):error TS2305:Module'「C:/ Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/core」'沒有導出成員'Scope'。 angular \ notificationApp.ts(1,33):error TS2305:Module'「C:/ Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/core」'沒有導出成員'Scope'。 angular \ searchApp.ts(4,21):error TS2305:Module'「C:/ Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/core」'沒有導出成員'Scope'。 angular \ teamRegisterApp.ts(1,21):error TS2305:Module'「C:/ Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/core」'沒有導出成員'Scope'。 C:/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/platform/browser.d.ts(77,90):錯誤TS2304:找不到名字'Promise'。 C:/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/common/pipes/async_pipe.d.ts(25,38):錯誤TS2304:找不到名字'Promise'。 C:/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/application_ref.d.ts(83,60):錯誤TS2304:找不到名字'Promise'。 C:/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/application_ref.d.ts(83,146):錯誤TS2304:找不到名字'Promise'。 C:/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/application_ref.d.ts(96,51):錯誤TS2304:找不到名字'Promise'。 C:/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/application_ref.d.ts(96,147):錯誤TS2304:找不到名字'Promise'。 C:/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/application_ref.d.ts(133,90):錯誤TS2304:找不到名字'Promise'。 C:/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/application_ref.d.ts(171,81):錯誤TS2304:找不到名字'Promise'。 C:/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/change_detection/parser/locals.d.ts(3,14):錯誤TS2304:找不到名稱'Map'。 C:/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/change_detection/parser/locals.d.ts(4,42):錯誤TS2304:找不到名稱'Map'。 C:/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/debug/debug_node.d.ts(14,13):錯誤TS2304:找不到名稱'Map'。 C:/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/debug/debug_node.d.ts(24,17):錯誤TS2304:找不到名稱'Map'。 C:/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/debug/debug_node.d.ts(25,17):錯誤TS2304:找不到名稱'Map'。 C:/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/di/provider.d.ts(436,103):錯誤TS2304:找不到名稱'Map'。 C:/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/di/provider.d.ts(436,135):錯誤TS2304:找不到名稱'Map'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/linker/compiler.d.ts(12.50):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/linker/compiler.d.ts(16,41):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/linker/dynamic_component_loader.d.ts(108.136):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/linker/dynamic_component_loader.d.ts(156.150):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/linker/dynamic_component_loader.d.ts(197.128):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/linker/dynamic_component_loader.d.ts(203.127):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/linker/dynamic_component_loader.d.ts(204.141):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/linker/dynamic_component_loader.d.ts(205.119):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/render/api.d.ts(13.13):錯誤TS2304:找不到名稱 '地圖'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/render/api.d.ts(14.84):錯誤TS2304:找不到名稱 '地圖'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/async.d.ts(27.33):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/async.d.ts(28.45):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts(1,25):錯誤TS2304:找不到名稱爲 'MapConstructor'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts(2.25):錯誤TS2304:找不到名稱爲 'SetConstructor'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts(4.27):錯誤TS2304:找不到名稱 '地圖'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts(4.39):錯誤TS2304:找不到名稱 '地圖'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts(7,9):錯誤TS2304:找不到名稱 '地圖'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts(8.30):錯誤TS2304:找不到名稱 '地圖'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts(11,43):錯誤TS2304:找不到名稱 '地圖'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts(12,27):錯誤TS2304:找不到名稱 '地圖'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts(14.23):錯誤TS2304:找不到名稱 '地圖'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts(15,25):錯誤TS2304:找不到名稱 '地圖'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts(95.41):錯誤TS2304:找不到名稱 '設置'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts(96.22):錯誤TS2304:找不到名稱 '設置'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts(97.25):錯誤TS2304:找不到名稱 '設置'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/lang.d.ts(13,17):錯誤TS2304:找不到名稱 '地圖'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/lang.d.ts(14,17):錯誤TS2304:找不到名稱 '設置'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/lang.d.ts(78.59):錯誤TS2304:找不到名稱 '地圖'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/promise.d.ts(2.14):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/promise.d.ts(7.32):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/promise.d.ts(8.38):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/promise.d.ts(9.35):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/promise.d.ts(9.93):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/promise.d.ts(10.34):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/promise.d.ts(11.32):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/promise.d.ts(11149):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/promise.d.ts(12.43):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/platform/browser/browser_adapter.d.ts(75,33):錯誤TS2304:找不到名稱 '地圖'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/platform/dom/dom_adapter.d.ts(85.42):錯誤TS2304:找不到名稱 '地圖'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/CoreOperators.d.ts(35.67):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/CoreOperators.d.ts(50.66):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/CoreOperators.d.ts(89.67):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/CoreOperators.d.ts(94,38):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/CoreOperators.d.ts(94.50):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/Observable.d.ts(46.62):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/Observable.d.ts(47.42):錯誤TS2304:找不到名稱爲 '迭代'。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/Observable.d.ts(103.74):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/Observable.d.ts(103.84):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/Observable.d.ts(143.66):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/Observable.d.ts(158.65):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/Observable.d.ts(201.66):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/Observable.d.ts(206.38):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/Observable.d.ts(206.50):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/observable/ForkJoinObservable.d.ts(6.50):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/observable/ForkJoinObservable.d.ts(7.58):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/observable/FromObservable.d.ts(7.38):錯誤TS2304:找不到名稱爲 「無極」。 Ç/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/observable/FromObservable.d.ts(7.51):錯誤TS2304:找不到名稱爲 '迭代'。 C:/項目/ hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs /可觀察/ PromiseObservable。d.ts(9,31):錯誤TS2304:找不到'Promise'的名稱。 C:/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/observable/PromiseObservable.d.ts(10,26):錯誤TS2304:找不到名稱 '承諾'。

每大口大口地目前都在最新的版本。 Angular 2是beta 7.你能幫我嗎,問題在哪裏?很感謝。

回答

9

您的許多錯誤都可以通過固定在調用bootstrap將輸出文件引用browser.d.ts聲明文件:

///<reference path="../node_modules/angular2/typings/browser.d.ts"/> 

對於Scope錯誤,這很難說。您嘗試使用什麼Scope class/interface?

+0

太好了!它看起來很好。範圍是爲角測試版1.我更新和範圍被刪除。很感謝! –

+0

我很好奇,這是如何解決問題的?如果我把它放在*任何*我的打字稿文件中,它似乎可以解決編譯錯誤。有沒有一個地方可以把我的'tsconfig.json'或'gulpfile.js'放到我的源代碼中? –

+0

啊,找到了我自己的問題的答案,如果你願意,隨時添加到你的答案。 –

2

在補充了馬特的答案,你可以嘗試以下方法:

const gulp = require('gulp'); 
const ts = require('gulp-typescript'); 

var tsProject = ts.createProject('tsconfig.json', { 
    typescript: require('typescript') 
}); 

gulp.task('tscompile', function() { 
    var tsResult = gulp.src('./app/**/*.ts') 
       .pipe(ts(tsProject)); 
    return tsResult.js.pipe(gulp.dest('./')); 
}); 

這讓我編譯在我app文件夾中的所有文件。

0

我也將增加我用吞氣任務的我的版本:

var ts = require('gulp-typescript'); 

gulp.task('build.js.dev', 
function() 
{ 
    var tsProject = ts.createProject('tsconfig.json'); 

    var tsResult = tsProject.src() 
     .pipe(ts(tsProject)); 

    return tsResult.js.pipe(gulp.dest('./'); 
}); 

注意沒有任何明確的源文件規格。

4

從@ MattScarpino的回答,angular2包包括必要的定義。添加此基準線到我的任何打字稿文件似乎要解決的問題:

///<reference path="../node_modules/angular2/typings/browser.d.ts"/> 

,我發現我也可以定義添加到我的源文件的列表中gulpfile.js,因此基準是不是在我的打字稿文件:

gulp.task('ts', function (done) {  
    var tsResult = gulp.src([ 
     'node_modules/angular2/typings/browser.d.ts', // ADDED 
     "scripts/*.ts" 
    ]) 
     .pipe(ts(tsProject), undefined, ts.reporter.fullReporter()); 
    return tsResult.js.pipe(gulp.dest('./wwwroot/appScripts')); 
}); 
1

如果編譯只是不能與一飲而盡工作,但在像Visual Studio的IDE,IDE的可能是一個幫助找出引用您要添加到您的引導文件。

在我的情況下,錯誤是這樣的:

node_modules/@angular/core/src/linker/dynamic_component_loader.d.ts(113,139): error TS2304: Cannot find name 'Promise'.

我去VS該文件,然後引用(F12),並來到了定義,那是在typings/globals/core-js/index.d.ts。所以,我在bootstap打字稿文件添加此作爲參考:

///<reference path="../../typings/globals/core-js/index.d.ts"/>

+0

這爲我修好了,謝謝@martinoss –

相關問題