我正在尝试使用gulp-typescript来编译我的打字稿代码。我想将* .spec.js发送到名为&#34的文件夹; test"我正在尝试将其余部分发送到名为" dist"的文件夹中。我正在尝试follow this example但是我的所有编译文件都没有达到我想要的结果,而是最终进入" test"。
这是我的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]);
});

有谁知道我做错了什么?
- 由于
答案 0 :(得分:0)
我认为你可以通过这样做来存档你想要的东西:
//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'目录的工作。
希望这会有所帮助。