2015-09-08 4 views
1

Я пытаюсь принести приложение типа из среды ASP.NET MVC в отдельное приложение, чтобы разделить потребности в интерфейсе и бэкэнд.gulp-typescript компилятор не скомпилирует мои файлы

Тип машинописи остается неизменным, и я попытался скомпилировать машинописный текст с помощью gulp, но код, похоже, не компилируется. Я следовал this blogpost от Дэна Вахлина. Но машинопись не компилируется. Я на компьютере с Windows 8.1 с установленной версией Visual Studio 2015 Premium.

Структура каталогов моего проекта заключается в следующем:

/ 

-- App/ 
---- Controllers/ 
------ xxController.ts 

-- Scripts/ 
---- typings/ 
------ xxlibrary/ 
-------- library.d.ts 
---- tsd.d.ts 

Файлы я являются следующие:

Gulpfile.config.js:

'use strict'; 
var GulpConfig = (function() { 
function gulpConfig() { 

    this.source = '/App'; 

    this.tsOutputPath = '/Scripts'; 
    this.allJavaScript = ['/Scripts/**/*.js']; 
    this.allTypeScript = this.source + '/**/*.ts'; 

    this.typings = '/Scripts/typings'; 
    this.libraryTypeScriptDefinitions = this.typings + '/**/*.ts'; 
} 
return gulpConfig; 
})(); 
module.exports = GulpConfig; 

Пожалуйста, обратите внимание, что при Я использую нотацию «./», как показано в конфигурационном галпе Dan Wahlin, дает мне исключение:

[11:08:11] Using gulpfile D:\Files\Work\Source\ImageManagement\Imagemanagement.App\Gulpfile.js 
    [11:08:11] Starting 'ts-lint'... 
    [11:08:11] Starting 'compile-ts'... 
    stream.js:94 
    throw er; // Unhandled stream error in pipe. 
    ^
    SyntaxError: Unexpected token 

gulpfile.js:

'use strict'; 

var gulp = require('gulp'), 
    debug = require('gulp-debug'), 
    inject = require('gulp-inject'), 
    tsc = require('gulp-typescript'), 
    tslint = require('gulp-tslint'), 
    sourcemaps = require('gulp-sourcemaps'), 
    del = require('del'), 
    Config = require('./gulpfile.config'), 
    tsProject = tsc.createProject('tsconfig.json'), 
    browserSync = require('browser-sync'), 
    superstatic = require('superstatic'); 

var config = new Config(); 

/** 
* Compile TypeScript and include references to library and app .d.ts files. 
*/ 
gulp.task('compile-ts', function() { 
    var sourceTsFiles = [config.allTypeScript,    //path to typescript files 
         config.libraryTypeScriptDefinitions]; //reference to library .d.ts files 


    var tsResult = gulp.src(sourceTsFiles) 
         .pipe(sourcemaps.init()) 
         .pipe(tsc(tsProject)); 

    tsResult.dts.pipe(gulp.dest(config.tsOutputPath)); 
    return tsResult.js 
        .pipe(sourcemaps.write('.')) 
        .pipe(gulp.dest(config.tsOutputPath)); 
}); 

Когда я запускаю этот gulpfile.js нет никакой ошибки выброшен, но не выход в Scripts, как я ожидал.

[11:15:08] Using gulpfile D:\Files\Work\Source\ImageManagement\Imagemanagement.App\Gulpfile.js 
    [11:15:08] Starting 'compile-ts'... 
    [11:15:08] Finished 'compile-ts' after 6.84 ms 
    Process terminated with code 0. 
+0

Не могли бы вы просто запустить задачу компиляции ('gulp compile-ts') и удалить свой вопрос, чтобы исключить все остальные задачи? Таким образом, мы можем изолировать проблему. Btw, попробуйте сделать это: 1. Используйте ['gulp-debug'] (https://www.npmjs.com/package/gulp-debug), чтобы убедиться, что вы получаете файлы в' gulp.src (sourceTsFiles) '. 2. Попробуйте сделать: 'return gulp.src (sourceTsFiles) .pipe (sourcemaps.init()). Pipe (ts (tsProject)). Pipe (sourcemaps.write (" ./ ")). Pipe (gulp.dest (config.tsOutputPath)); 'in' compile-ts' вместо этого. –

+0

Я пробовал то, что вы предлагали, и я надеюсь, что я сделал это правильно: 1. добавила .pipe (debug (sourceTsFiles)) в строку кода и выводит '[16:52:05] gulp-debug: 0 items' Я попытался рефакторинга это, но это не улучшило: 'возвращение gulp.src (sourceTsFiles) .pipe (отладочные (sourceTsFiles)) .pipe (sourcemaps.init()) .pipe (TSC (tsProject)) .pipe (sourcemaps.write ('./')) .pipe (gulp.dest (config.tsOutputPath)); ' – VeldMuijz

+0

Хорошо, забудьте о второй части, о которой я упомянул. Если вы выполните: 'gulp.src (sourceTsFiles) .pipe (debug())' 'элементы' 'означает, что' gulp.src (sourceTsFiles) 'не находит никаких файлов. Убедитесь, что пройденные пути верны. Прямо сейчас, похоже, что это выглядит в '/ App/**/*. Ts' –

ответ

0

ОК, я нашел проблему. Когда я это изменить:

'use strict'; 
var GulpConfig = (function() { 
function gulpConfig() { 
[...] 
    this.allTypeScript = this.source + '/**/*.ts'; 
[...] 
    this.libraryTypeScriptDefinitions = this.typings + '/**/*.ts'; 
} 
return gulpConfig; 
})(); 
module.exports = GulpConfig; 

Для

'use strict'; 
var GulpConfig = (function() { 
function gulpConfig() { 
[...] 
    this.allTypeScript = './App/**/*.ts'; 
[...] 
    this.libraryTypeScriptDefinitions = './Scripts/typings/**/*.ts'; 
} 
return gulpConfig; 
})(); 
module.exports = GulpConfig; 

Он работает просто отлично. Не знаю, почему.

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