0

嗨,我正在尝试配置 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:除非“--module”标志提供了有效的模块类型,否则无法编译模块。考虑在 'tsconfig.json' 文件中设置 'module' 编译器选项。

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

错误 TS1219:对装饰器的实验性支持是一项可能在未来版本中更改的功能。设置“experimentalDecorators”选项以删除此警告。

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

.任何人都知道我做错了什么?

4

2 回答 2

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 中排除不必要的文件总是比明确指定所有必要的文件更容易。

于 2016-03-02T20:28:16.367 回答
0

尝试:

const tscConfig = require('./tsconfig.json').compilerOptions;
于 2016-03-02T20:07:25.893 回答