Skip to content

Commit 85eb106

Browse files
committed
fix: type miss, close #4863
1 parent 87a4007 commit 85eb106

File tree

2 files changed

+52
-75
lines changed

2 files changed

+52
-75
lines changed

antd-tools/gulpfile.js

+51-74
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,18 @@ const chalk = require('chalk');
1717
const getNpmArgs = require('./utils/get-npm-args');
1818
const getChangelog = require('./utils/getChangelog');
1919
const path = require('path');
20+
// const watch = require('gulp-watch')
21+
const ts = require('gulp-typescript');
2022
const gulp = require('gulp');
21-
const fg = require('fast-glob');
2223
const fs = require('fs');
2324
const rimraf = require('rimraf');
24-
const { createCompilerHost, createProgram } = require('typescript');
2525
const stripCode = require('gulp-strip-code');
2626
const compareVersions = require('compare-versions');
27-
// const getTSCommonConfig = require('./getTSCommonConfig');
28-
const replaceLib = require('./replaceLib');
2927
const getTSCommonConfig = require('./getTSCommonConfig');
28+
const replaceLib = require('./replaceLib');
3029

3130
const packageJson = require(getProjectPath('package.json'));
31+
const tsDefaultReporter = ts.reporter.defaultReporter();
3232
const cwd = process.cwd();
3333
const libDir = getProjectPath('lib');
3434
const esDir = getProjectPath('es');
@@ -72,52 +72,29 @@ function dist(done) {
7272
});
7373
}
7474

75-
async function compileTs(modules = false, cb) {
76-
const options = {
77-
emitDeclarationOnly: true,
78-
...tsConfig,
79-
moduleResolution: 2,
80-
};
81-
82-
const createdFiles = {};
83-
const host = createCompilerHost(options);
84-
host.writeFile = (fileName, contents) => {
85-
createdFiles[path.isAbsolute(fileName) ? path.relative(cwd, fileName) : fileName] = contents;
86-
};
87-
88-
const files = await fg(
89-
[
90-
'components/**/*.js',
91-
'components/**/*.jsx',
92-
'components/**/*.tsx',
93-
'components/**/*.ts',
94-
'typings/**/*.d.ts',
95-
'!components/*/__tests__/*',
96-
'!components/*/style/*',
97-
'!components/styles.ts',
98-
],
99-
{ cwd },
100-
);
101-
102-
const program = createProgram(files, options, host);
103-
program.emit();
75+
const tsFiles = ['**/*.ts', '**/*.tsx', '!node_modules/**/*.*', 'typings/**/*.d.ts'];
10476

105-
Object.keys(createdFiles).forEach(fileName => {
106-
const contents = createdFiles[fileName];
107-
const filePath = path.join(
108-
cwd,
109-
fileName.replace(/^components/, modules === false ? 'es' : 'lib'),
110-
);
111-
const dir = path.dirname(filePath);
112-
if (!fs.existsSync(dir)) {
113-
fs.mkdirSync(dir, { recursive: true });
114-
}
115-
fs.writeFileSync(filePath, contents);
116-
});
117-
cb(0);
77+
function compileTs(stream) {
78+
return stream
79+
.pipe(ts(tsConfig))
80+
.js.pipe(
81+
through2.obj(function (file, encoding, next) {
82+
// console.log(file.path, file.base);
83+
file.path = file.path.replace(/\.[jt]sx$/, '.js');
84+
this.push(file);
85+
next();
86+
}),
87+
)
88+
.pipe(gulp.dest(process.cwd()));
11889
}
11990

120-
gulp.task('tsc', () => compileTs());
91+
gulp.task('tsc', () =>
92+
compileTs(
93+
gulp.src(tsFiles, {
94+
base: cwd,
95+
}),
96+
),
97+
);
12198

12299
function babelify(js, modules) {
123100
const babelConfig = getBabelCommonConfig(modules);
@@ -192,7 +169,7 @@ function compile(modules) {
192169
const assets = gulp
193170
.src(['components/**/*.@(png|svg)'])
194171
.pipe(gulp.dest(modules === false ? esDir : libDir));
195-
// let error = 0;
172+
let error = 0;
196173
const source = [
197174
'components/**/*.js',
198175
'components/**/*.jsx',
@@ -202,8 +179,27 @@ function compile(modules) {
202179
'!components/*/__tests__/*',
203180
];
204181

205-
const jsFilesStream = babelify(gulp.src(source), modules);
206-
return merge2([less, jsFilesStream, assets]);
182+
const tsResult = gulp.src(source).pipe(
183+
ts(tsConfig, {
184+
error(e) {
185+
tsDefaultReporter.error(e);
186+
error = 1;
187+
},
188+
finish: tsDefaultReporter.finish,
189+
}),
190+
);
191+
192+
function check() {
193+
if (error && !argv['ignore-error']) {
194+
process.exit(1);
195+
}
196+
}
197+
198+
tsResult.on('finish', check);
199+
tsResult.on('end', check);
200+
const tsFilesStream = babelify(tsResult.js, modules);
201+
const tsd = tsResult.dts.pipe(gulp.dest(modules === false ? esDir : libDir));
202+
return merge2([less, tsFilesStream, tsd, assets]);
207203
}
208204

209205
function tag() {
@@ -332,7 +328,6 @@ function pub(done) {
332328

333329
let startTime = new Date();
334330
gulp.task('compile-with-es', done => {
335-
startTime = new Date();
336331
console.log('start compile at ', startTime);
337332
console.log('[Parallel] Compile to es...');
338333
compile(false).on('finish', done);
@@ -343,31 +338,13 @@ gulp.task('compile-with-lib', done => {
343338
compile().on('finish', done);
344339
});
345340

346-
gulp.task('compile-with-es-ts-type', async done => {
347-
console.log('[Parallel] Compile to es ts type...');
348-
await compileTs(false, done);
349-
});
350-
351-
gulp.task('compile-with-lib-ts-type', async done => {
352-
console.log('[Parallel] Compile to lib ts type...');
353-
await compileTs(true, done);
354-
});
355-
356341
gulp.task(
357342
'compile',
358-
gulp.series(
359-
gulp.parallel(
360-
'compile-with-es',
361-
'compile-with-lib',
362-
'compile-with-es-ts-type',
363-
'compile-with-lib-ts-type',
364-
),
365-
done => {
366-
console.log('end compile at ', new Date());
367-
console.log('compile time ', (new Date() - startTime) / 1000, 's');
368-
done();
369-
},
370-
),
343+
gulp.series(gulp.parallel('compile-with-es', 'compile-with-lib'), done => {
344+
console.log('end compile at ', new Date());
345+
console.log('compile time ', (new Date() - startTime) / 1000, 's');
346+
done();
347+
}),
371348
);
372349

373350
gulp.task(

components/typography/Typography.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export interface TypographyProps extends HTMLAttributes {
88
prefixCls?: string;
99
}
1010

11-
interface InternalTypographyProps extends TypographyProps {
11+
export interface InternalTypographyProps extends TypographyProps {
1212
component?: string;
1313
}
1414

0 commit comments

Comments
 (0)