2016-04-03 4 views
1

Я пытаюсь использовать gulp-typescript с некоторым успехом, но у меня есть небольшая проблема. Весь мой код хранится в 'src', и я хочу, чтобы они были скомпилированы в '.tmp', но без включенного 'src'.gulp-typescript: Проблемы с использованием createProject

вот мой код, я думаю, что проблема в том, что передача значения (Glob) в tsProject.src не поддерживается таким образом я получаю /.tmp/src/aTypescriptFile.js, например

Этот код I получил прямо из github repo, что я действительно не понял, почему gulp.src заменяется на tsProject.src

Любые идеи? Мне действительно нужно включить файл tsconfig.json.

let tsProject = plugins.typescript.createProject('./tsconfig.json'); 
    return tsProject.src('/src/**/*.ts') 
     .pipe(plugins.typescript(tsProject)) 
     .pipe(plugins.sourcemaps.init()) 
     .pipe(plugins.sourcemaps.write('.')) 
     .pipe(gulp.dest('.tmp')); 

** EDIT **

Более подробную информацию, мне удалось ограничить его с помощью Glob, заменив

   return tsProject.src('/src/**/*.ts') 

с

   return gulp.src('/src/**/*.ts') 

проблемы теперь, Я получаю сообщение об ошибке.

 src/testme.ts(4,10): error TS2304: Cannot find name 'require'. 

файл TSCONFIG.JSON есть здесь, у которого есть типичные там.

{ 
    "compilerOptions": { 
    "target": "ES6", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false 
    }, 
    "files": [ 
    "typings/main.d.ts", 
    "src/testme.ts" 
    ] 
} 

ответ

1

Все пути должны быть переданы gulp.src - источникам и образцам.

Давайте несколько путей:

var paths = { 
    lib: "./wwwroot/", 
    ts: ["./sources/**/*.ts"], 
    styles: ["./sources/**/*.scss"], 
    templates: ["./sources/**/*.html"], 
    typings: "./typings/**/*.d.ts", 
    //svg: "./sources/**/*.svg", 
}; 

Мы можем передать массив исходных путей проглатывать-машинопись:

gulp.task("?typescript:demo:debug", function() { 
    var tsResult = gulp.src([ 
      paths.typings, 
      // <...some other paths...> 
     ].concat(paths.ts)) 
     .pipe(sourcemaps.init()) 
     .pipe(ts({ 
      target: "ES5", 
      experimentalDecorators: true, 
      noImplicitAny: false 
     })); 

    return tsResult.js 
     .pipe(concat(package.name + ".js")) 
     .pipe(sourcemaps.write({ sourceRoot: "" })) 
     .pipe(gulp.dest(paths.lib)); 
}) 

Я передаю

gulp.src([paths.typings, <...some other paths...>].concat(paths.ts)) 

но Конечно, это также можно сделать более простым способом:

gulp.src([paths.typings, paths.ts]) 
+0

Спасибо, что я собираюсь принять это, поскольку это помогло мне совсем немного, но, наконец, мне удалось исправить эту проблему, сохранив исходный код и добавив «rootDir»: «src» в tsconfig.json. Поэтому, если кто-нибудь найдет это, есть два решения. – Martin