Skip to content

Maximum call stack size exceeded when using @babel/standalone in Angular application #8278

@darind

Description

@darind

Bug Report

Current Behavior

Maximum call stack size exceeded error is thrown when using @babel/standalone in a newly created Angular 6 application.

Input Code

Create an Angular app using @angular/cli and install the @babel/standalone package:

mkdir test
cd test
npm i @angular/cli
./node_modules/.bin/ng generate my-app
cd my-app
npm install @babel/standalone --save

Try using Babel inside src/main.ts:

...
import { transform } from "@babel/standalone";
const output = transform(`console.log("test")`, { presets: ["es2015"] });
console.log(output);
...

Build the Angular application in production mode so that the UglifyJs plugin is used:

./node_modules/.bin/ng build --prod --aot

The following error is shown during the UglifyJs step:

ERROR in ./node_modules/@babel/standalone/babel.js
Module build failed: RangeError: Maximum call stack size exceeded
    at substituteNode (d:\work\temp\my-app\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\lib\typescript.js:73502:32)
    at trySubstituteNode (d:\work\temp\my-app\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\lib\typescript.js:75263:46)
    at pipelineEmitWithComments (d:\work\temp\my-app\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\lib\typescript.js:74896:40)
    at emitNodeWithNotification (d:\work\temp\my-app\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\lib\typescript.js:73535:21)
    at pipelineEmitWithNotification (d:\work\temp\my-app\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\lib\typescript.js:74891:13)
    at emitExpression (d:\work\temp\my-app\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\lib\typescript.js:74861:13)
    at emitCallExpression (d:\work\temp\my-app\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\lib\typescript.js:75767:13)
    at pipelineEmitWithHint (d:\work\temp\my-app\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\lib\typescript.js:75195:32)
    at emitNodeWithSourceMap (d:\work\temp\my-app\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\lib\typescript.js:73891:24)
    at pipelineEmitWithSourceMap (d:\work\temp\my-app\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\lib\typescript.js:74905:13)
    at emitNodeWithNestedComments (d:\work\temp\my-app\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\lib\typescript.js:74211:17)
    at emitNodeWithSynthesizedComments (d:\work\temp\my-app\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\lib\typescript.js:74161:13)
    at emitNodeWithComments (d:\work\temp\my-app\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\lib\typescript.js:74131:21)
    at pipelineEmitWithComments (d:\work\temp\my-app\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\lib\typescript.js:74896:13)
    at emitNodeWithNotification (d:\work\temp\my-app\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\lib\typescript.js:73535:21)
    at pipelineEmitWithNotification (d:\work\temp\my-app\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\lib\typescript.js:74891:13)

Expected behavior/code

The application compiles successfully

Environment

  • Babel version(s): 7.0.0-beta.52
  • Node/npm version: Node 8.11.3/npm 5.6.0
  • OS: Windows 10
  • How you are using Babel: standalone inside web app

Additional context/Screenshots

The same steps work with babel-standalone@1.0.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    outdatedA closed issue/PR that is archived due to age. Recommended to make a new issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions