我正在尝试使用gulp-typescript来编译我的typescript代码。我想将测试发送到名为“*.spec.js”的文件夹中,而我正在尝试将其余内容发送到名为"dist“的文件夹中。我正在尝试测试,但是我所有的编译文件都以“follow this example”结尾,而不是我想要的结果。
这是我的gulp任务文件:
var gulp = require('gulp');
var ts = require('gulp-typescript');
var merge2 = require('merge2');
var config = require('../gulp.config');
var concat = require('gulp-concat');
var debug = require('gulp-debug');
var path = require('path');
var filter = require('gulp-filter');
var tsproj = ts.createProject(config.files.tsconfig);
gulp.task('typescript:src', function(){
var testFilter = filter(['src/**/*.spec.ts'], {restore: true, passthrough: false});
var compileStream = gulp
.src(['src/**/*.ts', '!src/client/jspm_packages/**'])
.pipe(ts(tsproj));
var tsd = compileStream
.dts
.pipe(concat(path.basename(config.files.srcDefinitions)))
.pipe(gulp.dest(config.paths.typings));
var js = compileStream
.js
.pipe(testFilter)
.pipe(gulp.dest('dist'));
var tests = testFilter.restore.pipe(gulp.dest('test'));
return merge2([tsd, js, tests]);
});
有人知道我做错了什么吗?
--谢谢
发布于 2016-01-23 16:03:38
我认为你可以通过这样做来归档你想要的东西:
//Copy specs
gulp.src(['dest/**/*.spec.js'])
.pipe(gulp.dest('dest/test'));
//Delete
del.sync(['dest/**/*.spec.js']);其中'dest‘-是js编译文件的目标输出文件夹。
作为一个侧面不-我真的不明白你为什么要这样做。通过移动生成的js文件,很可能会中断它们与应用程序其余部分之间的导入(如果有的话)。例如,如果您的spec.ts文件中包含类似以下内容:
import {F} from '../core/Commons';将其复制到'test‘子目录后,它将无法工作,因为路径'../core/Commons’将变为无效。
相反,您应该从一开始就将所有规范文件放在'test‘文件夹中,ts编译器将执行将js输出放入目标文件夹中的'test’目录的工作。
希望这能有所帮助。
https://stackoverflow.com/questions/34959922
复制相似问题