2016-02-25 2 views
4

У меня проблема с исключением папок в моем приложении. Я использую дескриптор gulp для компиляции и файл 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 "'не имеет экспортируемого члена' Scope '. угловой \ nominationApp.ts (1,21): ошибка TS2305: Module '' C:/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/core "'не имеет экспортированного члена' Scope '. угловое \ уведомлениеApp.ts (1,33): ошибка TS2305: Module '' C:/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/core "'не имеет экспортируемого члена' Scope '. угловой \ searchApp.ts (4,21): ошибка TS2305: Module '' C:/Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/core "'не имеет экспортированного члена' Scope '. угловой \ teamRegisterApp.ts (1,21): ошибка 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: Не удается найти имя «Карта». C: /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/change_detection/parser/locals.d.ts (4,42): ошибка TS2304: Не удается найти имя «Карта». C: /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/debug/debug_node.d.ts (14,13): ошибка TS2304: Не удается найти имя «Карта». C: /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/debug/debug_node.d.ts (24,17): ошибка TS2304: Не удается найти имя «Карта». C: /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/debug/debug_node.d.ts (25,17): ошибка TS2304: Не удается найти имя «Карта». C: /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/di/provider.d.ts (436,103): ошибка TS2304: Не удается найти имя «Карта». C: /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/di/provider.d.ts (436,135): ошибка TS2304: Не удается найти имя «Карта». C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/linker/compiler.d.ts (12,50): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/linker/compiler.d.ts (16,41): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/linker/dynamic_component_loader.d.ts (108.136): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/linker/dynamic_component_loader.d.ts (156.150): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/linker/dynamic_component_loader.d.ts (197.128): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/linker/dynamic_component_loader.d.ts (203.127): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/linker/dynamic_component_loader.d.ts (204.141): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/linker/dynamic_component_loader.d.ts (205.119): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/render/api.d.ts (13.13): ошибка TS2304: Не удается найти имя 'Карта'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/core/render/api.d.ts (14,84): ошибка TS2304: Не удается найти имя 'Карта'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/async.d.ts (27.33): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/async.d.ts (28.45): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts (1,25): ошибка TS2304: Не удается найти имя 'MapConstructor'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts (2.25): ошибка TS2304: Не удается найти имя 'SetConstructor'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts (4.27): ошибка TS2304: Не удается найти имя 'Карта'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts (4.39): ошибка TS2304: Не удается найти имя 'Карта'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts (7,9): ошибка TS2304: Не удается найти имя 'Карта'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts (8.30): ошибка TS2304: Не удается найти имя 'Карта'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts (11,43): ошибка TS2304: Не удается найти имя 'Карта'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts (12,27): ошибка TS2304: Не удается найти имя 'Карта'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts (14.23): ошибка TS2304: Не удается найти имя 'Карта'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts (15,25): ошибка TS2304: Не удается найти имя 'Карта'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts (95,41): ошибка TS2304: Не удается найти имя 'набор'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts (96.22): ошибка TS2304: Не удается найти имя 'набор'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/collection.d.ts (97,25): ошибка TS2304: Не удается найти имя 'набор'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/lang.d.ts (13,17): ошибка TS2304: Не удается найти имя 'Карта'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/lang.d.ts (14,17): ошибка TS2304: Не удается найти имя 'набор'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/lang.d.ts (78,59): ошибка TS2304: Не удается найти имя 'Карта'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/promise.d.ts (2.14): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/promise.d.ts (7.32): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/promise.d.ts (8.38): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/promise.d.ts (9.35): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/promise.d.ts (9.93): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/promise.d.ts (10.34): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/promise.d.ts (11.32): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/promise.d.ts (11149): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/facade/promise.d.ts (12,43): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/platform/browser/browser_adapter.d.ts (75,33): ошибка TS2304: Не удается найти имя 'Карта'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/angular2/src/platform/dom/dom_adapter.d.ts (85,42): ошибка TS2304: Не удается найти имя 'Карта'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/CoreOperators.d.ts (35.67): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/CoreOperators.d.ts (50,66): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/CoreOperators.d.ts (89.67): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/CoreOperators.d.ts (94,38): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/CoreOperators.d.ts (94,50): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/Observable.d.ts (46,62): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/Observable.d.ts (47,42): ошибка TS2304: Не удается найти имя 'итератора'. C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/Observable.d.ts (103.74): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/Observable.d.ts (103.84): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/Observable.d.ts (143.66): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/Observable.d.ts (158.65): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/Observable.d.ts (201,66): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/Observable.d.ts (206.38): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/Observable.d.ts (206.50): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/observable/ForkJoinObservable.d.ts (6.50): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/observable/ForkJoinObservable.d.ts (7.58): ошибка TS2304: Не удается найти имя "Promise". C /Projects/hrajemevolejbal/HrajemeVolejbal/node_modules/rxjs/observable/FromObservable.d.ts (7.38): ошибка TS2304: Не удается найти имя "Promise". C /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: Не удается найти имя «Promise».

Каждый глоток в настоящее время находится в последней версии. Угловая 2 - бета 7. Можете ли вы мне помочь, где проблема? Большое спасибо.

ответ

9

Многие из ваших ошибок может быть исправлена ​​путем ссылки на файл декларации browser.d.ts в файле транскрипта, который вызывает bootstrap:

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

Для Scope ошибок, это трудно сказать. Какой класс Scope/интерфейс вы пытаетесь использовать?

+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 пакет углов2 включает в себя необходимые определения. Добавление этой опорной линии к любому из моих машинописи файлов, казалось, чтобы решить эту проблему:

///<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

Если компиляция просто не будет работать с глотком, но в IDE, как Visual Studio, среда может быть помощь, чтобы выяснить, какие ссылки вы должны добавить в свой загрузочный файл.

В моем случае ошибка выглядит следующим образом:

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 –

Смежные вопросы