gpt4 book ai didi

TypeScript 编译建议(TS + gulp + karma)

转载 作者:搜寻专家 更新时间:2023-10-30 21:01:27 24 4
gpt4 key购买 nike

我正在尝试提出一个可行的 TypeScript 构建步骤,其中包括以下内容:

  • 编译 TypeScript(显然)
    • 理想情况下允许编译器遍历依赖树
  • 通过 karma 执行 jasmine 单元测试
  • 不依赖于 IDE(Visual Studio/WebStorm)来执行测试和输出 JS
  • 能够通过 WebStorm 的运行配置执行单元测试
  • 代码覆盖率结果基于 TS 代码,而不是结果 JS

我目前的尝试涉及使用:

  • gulp-tsc
  • karma
  • karma-typescript-preprocessor

我宁愿只运行一次编译步骤,因为现在我必须执行单元测试的预编译步骤和下面的 build-ts 步骤以输出到我的 dist文件夹。我曾尝试使用 karma-typescript-pre-processor,但结果好坏参半且性能不佳(通过测试,16 秒 w/o 2 秒)。

注意:我还没有尝试解决代码覆盖方面的问题,因为我对现有的构建/单元测试解决方案不满意。

我目前使用的karma文件是

module.exports = function(config) {
config.set({
browsers: ['PhantomJS'],
frameworks: ['jasmine'],
files: [
'../bower_components/angular/angular.js',
'../bower_components/angular-mocks/angular-mocks.js',
'../app/**/*_test.ts',
{
pattern: '../app/**/!(*_test).ts',
included: false
}
],
preprocessors: {
'../typings/jasmine/jasmine.d.ts': ['typescript'],
'../app/**/*.ts': ['typescript']
},
typescriptPreprocessor: {
options: {
sourceMap: true,
target: 'ES5',
noResolve: false
},
transformPath: function(path) {
return path.replace(/\.ts$/, '.js');
}
},
//reporters: ['progress', 'growl'],
colors: true
});
};

gulp 文件:

gulp.task('build-ts', function () {
return gulp.src(paths.ts)
.pipe(tsc({
noResolve: false,
out: 'app.js',
outDir: paths.dist.js,
removeComments: true,
//sourcePath: '../../app/ts',
//sourcemap: true,
target: 'ES5'
}))
.pipe(gulp.dest(paths.dist.js))
.pipe(connect.reload());
});

最佳答案

您可以使用 gulp.watch 在保存时编译 typescript 文件。这样,当您运行测试时, typescript 就已经编译好了。 gulp-tsc 模块应该有一个设置增量编译的指南。

关于TypeScript 编译建议(TS + gulp + karma),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28810583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com