2016-02-25 59 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 –

相关问题