Wondering what’s next for npm?Check out our public roadmap! »

    require-stack

    1.0.2 • Public • Published

    Require Stack

    Nodejs require method does not provide filename or line number for syntax errors when requiring modules under try/catch statement. Ideally it is not the problem with Node Js, it has something to do with v8 itself.

    Require Stack is a wrapper around require method, which makes it easier to get syntax error with proper error stack when wrapping require call under try/catch block.

    Using Node Js

    try{
      require('./module/with/syntax/error')
    }catch(e){
      console.log(e.stack)
    }

    above prints

    SyntaxError: Unexpected token {
        at exports.runInThisContext (vm.js:53:16)
        at Module._compile (module.js:413:25)
        at Object.Module._extensions..js (module.js:452:10)
        at Module.load (module.js:355:32)
        at Function.Module._load (module.js:310:12)
        at Module.require (module.js:365:17)
        at require (module.js:384:17)
        at Object.<anonymous> (/Users/harmindervirk/workspace/personal/active-packages/require-stack/index.js:11:3)
        at Module._compile (module.js:434:26)
        at Object.Module._extensions..js (module.js:452:10)
    

    Which is no reference to the filename or linenumber where syntax error has occured. File reference on line number 9 is the file from where code is executed.

    Using require stack

    var requireStack = require('require-stack')
    try{
      requireStack('./module/with/syntax/error')
    }catch(e){
      console.log(e.stack)
    }
    

    above prints

    /Users/harmindervirk/workspace/personal/active-packages/require-stack/test/modules/index.js:2
      return {
             ^
    ParseError: Unexpected token
    

    Which has reference to the filename with exact line number

    Bonus

    It does all the hard work required to setup error stack which can be parsed by https://www.npmjs.com/package/stack-trace.

    Install

    npm i require-stack

    DownloadsWeekly Downloads

    8,079

    Version

    1.0.2

    License

    MIT

    Last publish

    Collaborators

    • avatar