使用Gulp的JSON配置toTypeScript类

时间:2017-12-26 23:39:06

标签: typescript gulp

我正在尝试使用gulp任务从JSON配置创建一个typescript类。

input

    {
      "ApiEndpoint": "http://localhost:5000/api"
    }

希望获得类似

的输出
  public static get ApiEndpoint(): string {
    return "http://localhost:5000/api";
  }

尝试使用 gulp-ts-config ,但它在template.ts中抛出错误。不知何故,我无法使它在我的系统中工作。通过我们可以实现相同的其他gulp插件吗?

1 个答案:

答案 0 :(得分:2)

我的package.json

{
    "devDependencies": {
        "gulp": "3.9.1",
        "gulp-ts-config": "1.0.15"
    }
}

我的gulpfile.js

var gulp = require('gulp');
var gulpTsConfig = require('gulp-ts-config');

gulp.task('test', function () {
    gulp.src('appsettings.json')
        .pipe(gulpTsConfig('AppSettings'))
        .pipe(gulp.dest('Scripts'))
});

appSettings.json

{
    "ApiEndpoint": "http://localhost:5000/api"
}

在运行任务后创建的打字稿

export class AppSettings {

  public static get ApiEndpoint(): string {
    return "http://localhost:5000/api";
  }
}

参考文献:https://www.npmjs.com/package/gulp-ts-config

如果我将appSettings.json更改为包含多个对象以转换为typescript函数

{
    "ApiEndpoint": "http://localhost:5000/api",
    "HelloWorld":  "HelloWorld"
}

结果ts文件

export class AppSettings {

  public static get ApiEndpoint(): string {
    return "http://localhost:5000/api";
  }
  public static get HelloWorld(): string {
    return "HelloWorld";
  }
}

您从gulp-ts-config收到的具体错误是什么?我正在使用带有npm版本5.5.1的Visual Studio 2017和节点版本v8.9.3