lasso-js / lasso

Advanced JavaScript module bundler, asset pipeline and optimizer
580 stars 75 forks source link

Lasso errors with Failed to walk dependency #286

Closed jasonmlaster closed 5 years ago

jasonmlaster commented 5 years ago

I am just learning node along with Marko and lasso, so it is very possible I've simply missed something core, but I've been attempting to make a test app which calls external URL to process data. I am getting errors which seem to suggest missing dependencies from included request module, but only when running it under a marko app with lasso.

Things I tried:

Does anyone see anything obvious I missed. I'm asking this in lasso since the first mention outside of a dependency requirement is related to walk dependency from lasso.

partial error

Caused by: Error: Failed to walk dependency [require: ./lib/cookies]. Dependency chain: [marko-hydrate: path="C:/Users/jason/Dev/Nodejs/node-boilerplate/src/pages/reports/index.marko"] → [marko-dependencies: path="C:/Users/jason/Dev/Nodejs/node-boilerplate/src/pages/reports/index.marko"] → [marko-dependencies: path="C:/Users/jason/Dev/Nodejs/node-boilerplate/src/components/app-request/index.marko"] → [require: C:/Users/jason/Dev/Nodejs/node-boilerplate/src/components/app-request/index.marko.register.js] → [require: ./index.marko] → [require: ./component] → [require: request] → [require: ./lib/cookies]. Cause: Error: Failed to walk dependency [require: tough-cookie]. Dependency chain: [marko-hydrate: path="C:/Users/jason/Dev/Nodejs/node-boilerplate/src/pages/reports/index.marko"] → [marko-dependencies: path="C:/Users/jason/Dev/Nodejs/node-boilerplate/src/pages/reports/index.marko"] → [marko-dependencies: path="C:/Users/jason/Dev/Nodejs/node-boilerplate/src/components/app-request/index.marko"] → [require: C:/Users/jason/Dev/Nodejs/node-boilerplate/src/components/app-request/index.marko.register.js] → [require: ./index.marko] → [require: ./component] → [require: request] → [require: ./lib/cookies] → [require: tough-cookie]. Cause: Error: Failed to resolve "net". Target file does not exist. Started search from directory "C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\tough-cookie\lib".
    at module.exports (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\lasso\node_modules\raptor-util\createError.js:7:50)
    at walkDependency (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\lasso\src\dependency-walker.js:123:23)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:189:7)
Caused by: Error: Failed to walk dependency [require: tough-cookie]. Dependency chain: [marko-hydrate: path="C:/Users/jason/Dev/Nodejs/node-boilerplate/src/pages/reports/index.marko"] → [marko-dependencies: path="C:/Users/jason/Dev/Nodejs/node-boilerplate/src/pages/reports/index.marko"] → [marko-dependencies: path="C:/Users/jason/Dev/Nodejs/node-boilerplate/src/components/app-request/index.marko"] → [require: C:/Users/jason/Dev/Nodejs/node-boilerplate/src/components/app-request/index.marko.register.js] → [require: ./index.marko] → [require: ./component] → [require: request] → [require: ./lib/cookies] → [require: tough-cookie]. Cause: Error: Failed to resolve "net". Target file does not exist. Started search from directory "C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\tough-cookie\lib".
    at module.exports (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\lasso\node_modules\raptor-util\createError.js:7:50)
    at walkDependency (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\lasso\src\dependency-walker.js:123:23)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:189:7)
Caused by: Error: Failed to resolve "net". Target file does not exist. Started search from directory "C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\tough-cookie\lib".
    at resolve (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\lasso\src\resolve\index.js:119:19)
    at Object.resolveCached (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\lasso\src\resolve\index.js:134:22)
    at LassoContext.resolveCached (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\lasso\src\LassoContext.js:101:35)
    at handleRequire (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\lasso\src\require\inspect-cache.js:29:41)
    at Array.map (<anonymous>)
    at resolveInspectedRequires (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\lasso\src\require\inspect-cache.js:44:61)
    at afterInspect (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\lasso\src\require\inspect-cache.js:107:9)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:189:7)
Creation stack trace: Error
    at AsyncStream.beginAsync (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\marko\src\runtime\html\AsyncStream.js:188:56)
    at render (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\@lasso\marko-taglib\taglib\slot-tag.js:129:24)
    at render (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\@lasso\marko-taglib\taglib\body-tag.js:16:3)
    at wrappedRenderer (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\marko\src\runtime\helpers.js:217:13)
    at render (C:\Users\jason\Dev\Nodejs\node-boilerplate\src\pages\reports\index.marko.js:41:3)
    at renderer (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\marko\src\components\renderer.js:217:9)
    at safeRender (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\marko\src\runtime\renderable.js:6:9)
    at Template.render (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\marko\src\runtime\renderable.js:136:20)
    at ServerResponse.response.marko (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\marko\src\express.js:58:29)
    at C:\Users\jason\Dev\Nodejs\node-boilerplate\server.js:43:9
    at AsyncStream.error (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\marko\src\runtime\html\AsyncStream.js:437:13)
    at process.nextTick (C:\Users\jason\Dev\Nodejs\node-boilerplate\node_modules\@lasso\marko-taglib\taglib\slot-tag.js:140:20)
    at _combinedTickCallback (internal/process/next_tick.js:132:7)
    at process._tickCallback (internal/process/next_tick.js:181:9)

component.js

function getUrl(url) {
   var request = require('request');

   request(
     { method: 'GET'
     , uri: url
     , gzip: true
     }
   , function (error, response, body) {
       console.log('The response code is ' + response.statusCode)
     }
   )
   return response.statusCode;
}

module.exports = class {
    onInput(input) {
        this.state = {
            returnCode: 'no return code',
            defaultUrl: 'http://www.ebay.com'
        };
    }
    checkUrl(event, el){
        this.state.returnCode = getUrl(url);
        //this.state.returnCode = '200';
    };
}

index.marko

div
    h2 -- the current state of things
    br
    button on-click('checkUrl') -- check ${state.defaultUrl}
    h3 -- Return code for url ${state.returnCode}
jasonmlaster commented 5 years ago

Found https://github.com/salesforce/tough-cookie/issues/125 which references the failure due to the included net use for isIP. Wondering if lasso is setting a similar environment that would trigger this failure. If so my issue doesn't seem to be related to lasso.

jasonmlaster commented 5 years ago

Closing this. I've done more looking into it and something is odd about included libraries. I had the same behavior with the included http/https libraries. No indication this is lasso.