使用gulp-typescript设置typescript会导致多个错误

时间:2016-03-02 18:57:51

标签: typescript gulp gulp-typescript

您好我正在尝试配置gulp来编译我的打字稿文件到目前为止我是这样的:

const gulp = require('gulp');
const del = require('del');
const typescript = require('gulp-typescript');
const tscConfig = require('./tsconfig.json');
const util = require('gulp-util');

var paths = {
   npmSrc: "./node_modules/",
   libTarget: "./wwwroot/lib/",
   appTarget: "./wwwroot/app/"
}

gulp.task('tsBuild', function () {

    return gulp.src('App/**/*.ts')
        .pipe(typescript(tscConfig))
        .pipe(gulp.dest(paths.appTarget));
}

我的tsConfig看起来像这样:

    {
  "compilerOptions": {
    "outDir": "./wwwroot/app/",
    "target": "es5",
    "module": "system",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "removeComments": false,
    "noImplicitAny": true,
    "suppressImplicitAnyIndexErrors": true
  },
  "exclude": [
    "node_modules",
    "wwwroot"
  ]
}

这是我收到的错误消息:

  

App \ bootstrap.ts(1,25):错误TS2307:找不到模块' angular2 / platform / browser'。

     

App \ template \ template.component.ts(1,1):错误TS1148:无法编译   模块,除非' - 模块' flag提供有效模块   类型。考虑设置'模块' a中的编译选项   ' tsconfig.json'文件。

     
    

App \ template \ template.component.ts(1,25):错误TS2307:找不到模块' angular2 / core'。应用\模板\ template.component.ts(8,14):

  
     

错误TS1219:对装饰器的实验支持是一个特征   可能会在将来的版本中发生变化。设置   ' experimentalDecorators'删除此警告的选项。

感觉好像没有读取tsconfig文件。我的文件最终会被正确编译。

。没有人知道我做错了什么?

2 个答案:

答案 0 :(得分:1)

以下是gulp任务应该可以正常工作:

const typescript = require('gulp-typescript');   

gulp.task('tsBuild', function () 
{
    var tsProject = typescript.createProject('tsconfig.json');

    var tsResult = tsProject.src()
        .pipe(typescript(tsProject));  

    return tsResult.js.pipe(gulp.dest(paths.appTarget));
});

总是更容易在tsconfig中排除不必要的文件,而不是明确指定所有必需的文件。

答案 1 :(得分:0)

尝试:

const tscConfig = require('./tsconfig.json').compilerOptions;