stealjs / steal-tools

Build easy. Load fast.
https://stealjs.com/docs/steal-tools.html
MIT License
67 stars 23 forks source link

Steal-tools throws maximum call stack exceeded when building CanJS 3 AMD Output #582

Closed green3g closed 7 years ago

green3g commented 7 years ago

My attempt at outputting CanJS to amd modules fails with the error stack:

C:\www\gis\static_apps\cmv-app\viewer\js\bower\canjs>node build
  added helpers: amd
OPENING: can/all
-local+ npm
..........
-local+ can-fixture@1.0.11#helpers/getid
OUTPUT: +amd
Transpiling...
Output Modules:
+ can@3.3.0#all
> C:\www\gis\static_apps\cmv-app\viewer\js\bower\canjs\dist\amd\all.js
Transpiling...
Output Modules:
+ can@3.3.0#can
> C:\www\gis\static_apps\cmv-app\viewer\js\bower\canjs\dist\amd\can.js
Transpiling...
Output Modules:
+ can@3.3.0#ecosystem
> C:\www\gis\static_apps\cmv-app\viewer\js\bower\canjs\dist\amd\ecosystem.js
Potentially unhandled rejection [1] RangeError: Maximum call stack size exceeded

    at visit (C:\www\gis\static_apps\cmv-app\viewer\js\bower\canjs\node_modules\
steal-tools\lib\graph\each_dependencies.js:19:22)
    at C:\www\gis\static_apps\cmv-app\viewer\js\bower\canjs\node_modules\steal-t
ools\lib\graph\each_dependencies.js:20:5
    at Array.forEach (native)
    at visit (C:\www\gis\static_apps\cmv-app\viewer\js\bower\canjs\node_modules\
steal-tools\lib\graph\each_dependencies.js:19:22)
    at C:\www\gis\static_apps\cmv-app\viewer\js\bower\canjs\node_modules\steal-t
ools\lib\graph\each_dependencies.js:20:5
    at Array.forEach (native)
    at visit (C:\www\gis\static_apps\cmv-app\viewer\js\bower\canjs\node_modules\
steal-tools\lib\graph\each_dependencies.js:19:22)
    at C:\www\gis\static_apps\cmv-app\viewer\js\bower\canjs\node_modules\steal-t
ools\lib\graph\each_dependencies.js:20:5
    at Array.forEach (native)
    at visit (C:\www\gis\static_apps\cmv-app\viewer\js\bower\canjs\node_modules\
steal-tools\lib\graph\each_dependencies.js:19:22)
    at C:\www\gis\static_apps\cmv-app\viewer\js\bower\canjs\node_modules\steal-t
ools\lib\graph\each_dependencies.js:20:5

The build script I set up to produce this was:

var stealTools = require('steal-tools');
stealTools.export({
    system: {
        config: __dirname + '/package.json!npm',
        main: 'can/all'
    },
    options: {
        useNormalizedDependencies: false,
        verbose: true
    },
    outputs: {
        '+amd': {
            modules: ['can/all'],
            format: 'amd',
            useNormalizedDependencies: true,
            // ignore jquery
            ignore: [function (name) {
                if (name.indexOf('jquery') === 0 || name.indexOf('kefir') === 0) {
                    return true;
                } else {
                    return false;
                }
            }],
            removeDevelopmentCode: false
        }
    }
}).catch(function (e) {

    setTimeout(function () {
        throw e;
    }, 1);

});

I'm building this on Windows 7.

ArGGu commented 7 years ago

Reason for this is a circular dependency in can-zone.