Skip to content

RangeError: Maximum call stack size exceeded on simple, but has deep module dependency #625

@Develofrog

Description

@Develofrog

TypeScript Version: 2.5.2

Code

// client.ts, server.ts
import data from './module0'
console.log(data)

// (x) means variable x
// module(x).ts
import data from './module(x+1)'
export default data

// module718.ts
const data = 100
export default data

// webpack.config.js
var path = require('path')

var CleanWebpackPlugin = require('clean-webpack-plugin')

module.exports = {
  entry: {
    client: path.join(__dirname, '1-original/client.ts'),
    server: path.join(__dirname, '1-original/server.ts'),
  },

  output: {
    filename: '1.ts.[name].[hash].js',
    path: path.join(__dirname, 'dist')
  },

  resolve: {
    extensions: ['.ts'],
    modules: [
      'node_modules',
    ],
  },

  devtool: 'eval',
  target: 'web',

  module: {
    rules: [
      {
        test: /\.ts$/,
        loader: 'awesome-typescript-loader',
        include: [
          path.join(__dirname, '1-original')
        ],
        query: {
          configFileName: path.join(__dirname, 'tsconfig.1.json')
        }
      }
    ]
  },

  plugins: [
    new CleanWebpackPlugin([
      path.join(__dirname, 'dist')
    ])
  ]
}

// 

Expected behavior:
Compiled well.

Actual behavior:
Hello, I created this project for benchmarking performance of TypeScript. (and Babel.)
I made module dependence tree like below with Webpack.

test-ts

But, Webpack said..

Module build failed: RangeError: Maximum call stack size exceeded
    at Object.assert (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:3509:24)
    at resolveAlias (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23972:22)
    at getSymbol (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23255:38)
    at resolveNameHelper (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23396:34)
    at resolveName (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23383:20)
    at resolveEntityName (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:24060:26)
    at getTargetOfExportAssignment (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23940:20)
    at getTargetOfAliasDeclaration (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23955:28)
    at resolveAlias (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23978:30)
    at resolveSymbol (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23969:36)
    at getTargetOfImportClause (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23830:27)
    at getTargetOfAliasDeclaration (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23947:28)
    at resolveAlias (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23978:30)
    at getSymbol (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23255:38)
    at resolveNameHelper (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23396:34)
    at resolveName (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23383:20)
    at resolveEntityName (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:24060:26)
    at getTargetOfExportAssignment (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23940:20)
    at getTargetOfAliasDeclaration (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23955:28)
    at resolveAlias (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23978:30)
    at resolveSymbol (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23969:36)
    at getTargetOfImportClause (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23830:27)
    at getTargetOfAliasDeclaration (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23947:28)
    at resolveAlias (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23978:30)
    at getSymbol (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23255:38)
    at resolveNameHelper (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23396:34)
    at resolveName (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23383:20)
    at resolveEntityName (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:24060:26)
    at getTargetOfExportAssignment (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23940:20)
    at getTargetOfAliasDeclaration (/Users/lawlight/Development/ts-vs-babel/node_modules/typescript/lib/typescript.js:23955:28)

When I used awesome-typescript-loader, also occurred error but it looks like firing from another cause.
microsoft/TypeScript#18270

Please check this issue!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions