UNPKG

1.99 kBJavaScriptView Raw
1///@ts-check
2"use strict";
3var gulp = require("gulp");
4var sourcemaps = require("gulp-sourcemaps");
5const debug = require("../log/compile");
6const size = require('../log/size');
7// var empty = require("../lib/empty");
8const pkgVar = require('../lib/package-var');
9var replace = require("../lib/multi-replace");
10// var tsImport = require("../lib/tsimport");
11var error = require("../log/error");
12
13var TITLE = "typescript:";
14/**
15 * 编译TS
16 * @param {object} config *
17 * @param {string|string[]} [tsFile]
18 */
19function compileTS(config, tsFile) {
20 var ts = require("gulp-typescript");
21 // var resolver = require("@taqtile/gulp-module-resolver");
22 var tsProject = ts.createProject(config.tsconfig, {
23 // getCustomTransformers: (program) => ({
24 // before: [require("ts-transform-paths").default()]
25 // })
26 getCustomTransformers: (program) => require("ts-transform-paths").default()
27 });
28
29 var src = tsFile ? gulp.src(tsFile, { base: config.src, sourcemaps: true }) : tsProject.src();
30 // console.log(tsFile,src)
31 return src
32 .on("error", error(TITLE))
33 .pipe(debug({
34 title: TITLE,
35 // dist: config.dist,
36 distExt: '.js'
37 }))
38 .pipe(sourcemaps.init())
39 .pipe(replace(pkgVar(config.var), undefined, "{{", "}}"))
40 .pipe(tsProject(ts.reporter.fullReporter(true)))
41 .on("error", error(TITLE))
42 .js
43 // .pipe(require('gulp-ts-path-alias')(tsProject.config.compilerOptions.baseUrl,tsProject.config.compilerOptions.paths))
44 // .pipe(tsProject.options.baseUrl && tsProject.options.paths ? tsImport(tsProject.config.compilerOptions) : empty())
45 // .pipe(tsProject.options.baseUrl && tsProject.options.paths ? resolver(tsProject.config.compilerOptions.outDir) : empty())
46 .pipe(sourcemaps.write('./'))
47 .pipe(gulp.dest(config.dist))
48 .pipe(size({ title: TITLE, showFiles: true }));
49}
50module.exports = compileTS;