TypeScript ๋ฒ์ : 2.4.1
Repro ํ๋ก์ ํธ
ํฐ JS ํ์ผ (์๋ํ๋ ํ์) (245KB commonjs ํ์) ( --allowJs
์ฌ์ฉ)์ ๊ฐ์ ธ์ฌ ๋ ์ปดํ์ผ๋ฌ๊ฐ ์์ํ ์ค๋จ๋ฉ๋๋ค. ์ ๊ณต๋ ์ต์ ์ฌํ ํ๋ก์ ํธ : tsc-hang-00
์์๋๋ ๋์ :
์ปดํ์ผ์ ์ค๋ฅ๊ฐ ์๊ฑฐ๋์์ด ๋๋ฉ๋๋ค.
์ค์ ํ๋ :
์ปดํ์ผ์ ์์ํ ๋ฉ์ถ๊ณ CPU๋ฅผ ๊ณ์ ์ฌ์ฉํฉ๋๋ค.
์กฐ๊ฑด ํ ์คํธ
์ฌ๊ธฐ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง๋ฅผ ํ๋กํ์ผ ๋งํ๋ ค๊ณ ์๋ํ๊ณ ์์์ ์๊ฐ (1 ์ด๋ผ๋) ๋์ CPU ํ๋กํ์ผ์ ์บก์ฒํ๋ ค๊ณ ํ๋ฉด CPU ํ๋กํ์ผ์ ์ฒ๋ฆฌํ๋ ๋์ Chrome ํ๋กํ์ผ ๋ฌ๊ฐ ์ถฉ๋ ํ ์ ์์ต๋๋ค.
ํ๋กํ์ผ ๋ง์ 245k ํ์ผ์ ์ ์ฉํ์ง ์์ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ฒ๊ทธ ๋๋ ์๊ณ ๋ฆฌ์ฆ ์ฑ๋ฅ ๋ฌธ์ ์ด๋ฉฐ, ๋ ๋ค ์ผ๋ฐ์ ์ผ๋ก ๋งค์ฐ ๊น์ ์คํ
'์์น'์๋ ๋ ๊ฐ์ง ๊ด๋ จ ์๋ฏธ๊ฐ ์์ต๋๋ค. ํ์ฌ ํ์ธ์ค์ธ ๋ ธ๋์ ๋๋ฒ๊น ์ด ์ผ์ ์ค์ง๋์์ ๋ ๋ช ๋ น ํฌ์ธํฐ๊ฐ์๋ ์์น์ ๋๋ค.
Heya, https://github.com/filipesilva/tsc-allowjs-big-file ์์ ๋ ๋ค๋ฅธ ๊ฐ๋จํ ์ฌํ์ด ์๋ค๊ณ ๋งํ๊ณ ์ถ์์ต๋๋ค @dzonatan์ ์์์ ์ํด ์๊ฐ์ํ๋ค https://github.com/angular/angular-cli/issues/9636#issuecomment -390203543.
์์ฒ ๊ฐ์ ๋ฉ์๋๊ฐ์๋ ํด๋์ค ๋ง ์์ต๋๋ค.
export class BigClass {
myVar: any;
method000() { return this.myVar; }
method001() { return this.myVar; }
// ...
method999() { return this.myVar; }
}
ํด๋น ์ ์ฅ์์์ npm test
๋ฅผ ์คํํ๋ฉด์ด typescript ํ์ผ์ javascript๋ก ์ปดํ์ผ ํ ๋ค์ ๊ฒฐ๊ณผ javascript ํ์ผ์ --allowJs
๋ก ์ปดํ์ผํฉ๋๋ค.
๊ทธ๋ฌ๋ฉด TS 2.7.2 ๋ฐ 2.8.4์์ RangeError: Maximum call stack size exceeded
์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ TS 2.9.1์์๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์๊ณ ์ปดํ์ผ์ด ์ฑ๊ณตํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
Heya, https://github.com/filipesilva/tsc-allowjs-big-file ์์ ๋ ๋ค๋ฅธ ๊ฐ๋จํ ์ฌํ์ด ์๋ค๊ณ ๋งํ๊ณ ์ถ์์ต๋๋ค @dzonatan์ ์์์ ์ํด ์๊ฐ์ํ๋ค https://github.com/angular/angular-cli/issues/9636#issuecomment -390203543.
์์ฒ ๊ฐ์ ๋ฉ์๋๊ฐ์๋ ํด๋์ค ๋ง ์์ต๋๋ค.
ํด๋น ์ ์ฅ์์์
npm test
๋ฅผ ์คํํ๋ฉด์ด typescript ํ์ผ์ javascript๋ก ์ปดํ์ผ ํ ๋ค์ ๊ฒฐ๊ณผ javascript ํ์ผ์--allowJs
๋ก ์ปดํ์ผํฉ๋๋ค.๊ทธ๋ฌ๋ฉด TS 2.7.2 ๋ฐ 2.8.4์์
RangeError: Maximum call stack size exceeded
์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ TS 2.9.1์์๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์๊ณ ์ปดํ์ผ์ด ์ฑ๊ณตํฉ๋๋ค.