2015-11-14 4 views
0

Я использую gulp-typescript для компиляции приложения angular2. Я получаю следующую ошибку.gulp-typescript дающий модуль не найден ошибка для angular2

C: /src/Terminal.Web/src/Terminal.Web/node_modules/angular2/src/facade/async.d.ts (3,53): ошибка TS2307: Не удается найти модуль «@reactivex/rxjs/расстояние/CJS/Rx. C: /src/Terminal.Web/src/Terminal.Web/node_modules/angular2/src/facade/async.d.ts (4,25): ошибка TS2307: не удается найти модуль '@ reactivex/rxjs/dist/CJS/Rx. [12:18:32] Тип: 4 семантических ошибки C: /src/Terminal.Web/src/Terminal.Web/node_modules/angular2/src/facade/async.d.ts (5,22): ошибка TS2307: Не удается найти модуль '@ reactivex/rxjs/dist/cjs/Operator'. C: /src/Terminal.Web/src/Terminal.Web/node_modules/angular2/src/facade/lang.d.ts (2,22): ошибка TS2304: Не удается найти имя «BrowserNodeGlobal».

Это задача глотка.

paths.appJs = "app/**/*.ts"; 
paths.appNg2ComponentsJs = "ng2components/**/*.ts"; 
paths.appHtml = "app/**/*.html"; 
paths.appJsOut = paths.webroot + "app/"; 
paths.angualr2Typings = "node_modules/angular2/typings/"; 

gulp.task("compile-app-components", function() { 

    var tscResult = gulp.src([paths.appNg2ComponentsJs, paths.angualr2Typings + "**/*.d.ts"]) 
     .pipe(tsc({ 
      "target": "es5", 
      "module": "system", 
      "declaration": false, 
      "noImplicitAny": false, 
      "removeComments": true, 
      "noLib": false, 
      "emitDecoratorMetadata": true, 
      "experimentalDecorators": true, 
      "sourceMap": true, 
      "listFiles": true, 
     })); 

    return tscResult.js 
     .pipe(gulp.dest(paths.appJsOut)); 
}); 
+0

You не нужно кормить gulp-typescript с .d.ts, он найдет это автоматически из углового 2. Начните с этого. –

ответ

1

Во-первых, вы не должны добавлять .d.ts файлы определения для вашего глотком задачи сборки:

paths.appJs = "app/**/*.ts"; 
paths.appNg2ComponentsJs = "ng2components/**/*.ts"; 
paths.appHtml = "app/**/*.html"; 
paths.appJsOut = paths.webroot + "app/"; 

gulp.task("compile-app-components", function() {  
    var tscResult = gulp.src([paths.appNg2ComponentsJs, paths.appJs]) 
     .pipe(tsc({ 
      "target": "es5", 
      "module": "system", 
      "declaration": false, 
      "noImplicitAny": false, 
      "removeComments": true, 
      "noLib": false, 
      "emitDecoratorMetadata": true, 
      "experimentalDecorators": true, 
      "sourceMap": true, 
      "listFiles": true 
     })); 

    return tscResult.js 
     .pipe(gulp.dest(paths.appJsOut)); 
}); 

Кроме того, вам нужно написать

///<reference path="path/to/file.d.ts" /> 

линии в начале ваших .ts скриптов (т. е. тем, которые находятся в paths.appJs), где они необходимы (компилятор TypeScript сообщает вам, когда он не знает идентификатор).

+1

Я эта ошибка? В TypeScript 1.7.5, используя 'tsc' через командную строку и без ссылочного тега, я не получаю таких ошибок« Не могу найти модуль ». – yangmillstheory

1

Если вы используете JSPM решение переместить TSconfig в Wwwroot

Добавьте следующую строку в Wwwroot/tsconfig.json так что systemjs не будет пытаться загрузить sourcemaps:

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "sourceMap": false 
    }, 
    "exclude": [ 
    "jspm_packages" 
    ] 
}