pretty-exceptions

2019-10-10 admin

pretty-exceptions是什么

什么是pretty-exceptions,Pretty and more helpful uncaught exceptions, automatically.

pretty-exceptions使用教程帮助文档

Pretty Exceptions version License Build Status Coverage Status

Pretty and more helpful uncaught exceptions, automatically.

Usage

Library

const pretty = require('pretty-exceptions/lib')

const options = {
  source: true,
  native: true,
  color: true,
  cwd: process.cwd()
}

const output = pretty(new Error('foo'), options)

options

name type required default description
source Boolean false Show source code in stack
native Boolean false Show native code in stack
color Boolean true use ansi colors
cwd String process.cwd() resolve file names relative to this path

CLI (preferred)

This is the preferred approach to best avoid mistakingly including into production builds

  1. setup your NODE_PATH environment variable
export NODE_PATH="$NODE_PATH:$(npm root -g)"
  1. install pretty-exceptions
npm install --global pretty-exceptions
  1. run your application with the --require flag:
node --require pretty-exceptions my-app.js

# alternative modes (see below):
node --require pretty-exceptions/source my-app.js

Pro Tip:

Use Bash Aliases for less typing

# make a special alias for debugging
alias node-ex='node --require pretty-exceptions'

# or even better:
alias node='node --require pretty-exceptions/source'

To make this persistent, you need to add this into your ~/.bashrc (or ~/.bash_profile).

Environment Variables

env default description
PRETTY_EXCEPTIONS_SOURCE 0 Show source code in stack
PRETTY_EXCEPTIONS_NATIVE 0 Show native code in stack
PRETTY_EXCEPTIONS_COLOR 1 use ansi colors

Source (if you really must!)

Require at the top-most entry point of your app:

require('pretty-exceptions')

// alternative modes (see below):
require('pretty-exceptions/source-native')

Modes

Default

$ node --require pretty-exceptions my-app.js
Output
Error: oh no! this is an error message!
 │
 └┬╼ /path/to/my-app.js
  │
  ├──╼ someOtherFunction @ line 2:27
  ├──╼ someFunction @ line 6:3
  └──╼ Object.<anonymous> @ line 9:1

Demo

Colors will vary based on your local terminal configuration

View Source

$ node --require pretty-exceptions/source my-app.js
# OR
$ PRETTY_EXCEPTIONS_SOURCE=1 node --require pretty-exceptions my-app.js
Output
Error: oh no! this is an error message!
 │
 └┬╼ /path/to/my-app.js
  │
  ├──╼ someOtherFunction @ line 2
  │
  │    function someOtherFunction () {
  ├╌╌╌╌╌╌╌╌╌╌╮
  │    throw new Error('oh no! this is an error message!')
  │    }
  │
  ├──╼ someFunction @ line 6
  │
  │    function someFunction () {
  ├╌╌╌╌╮
  │    someOtherFunction()
  │    }
  │
  ├──╼ Object.<anonymous> @ line 9
  │
  └╌╌╌╌╮
       someFunction()

Demo

Colors will vary based on your local terminal configuration

View Native Calls

$ node --require pretty-exceptions/native my-app.js
# OR
$ PRETTY_EXCEPTIONS_NATIVE=true node --require pretty-exceptions my-app.js
Output
Error: oh no! this is an error message!
 │
 ├─┬╼ /path/to/my-app.js
 │ │
 │ ├──╼ someOtherFunction @ line 2:27
 │ ├──╼ someFunction @ line 6:3
 │ └──╼ Object.<anonymous> @ line 9:1
 │
 ├─┬╼ module.js
 │ │
 │ ├──╼ Module._compile @ line 571:32
 │ ├──╼ Object.Module._extensions..js @ line 580:10
 │ ├──╼ Module.load @ line 488:32
 │ ├──╼ tryModuleLoad @ line 447:12
 │ ├──╼ Function.Module._load @ line 439:3
 │ └──╼ Module.runMain @ line 605:10
 │
 └┬╼ bootstrap_node.js
  │
  └──╼ run @ line 423:7

Demo

Colors will vary based on your local terminal configuration

View Source & Native

$ node --require pretty-exceptions/source-native my-app.js
# OR
$ PRETTY_EXCEPTIONS_SOURCE=1 PRETTY_EXCEPTIONS_NATIVE=1 node --require pretty-exceptions my-app.js
Output
Error: oh no! this is an error message!
 │
 ├─┬╼ /path/to/my-app.js
 │ │
 │ ├──╼ someOtherFunction @ line 2
 │ │
 │ │    function someOtherFunction () {
 │ ├╌╌╌╌╌╌╌╌╌╌╮
 │ │    throw new Error('oh no! this is an error message!')
 │ │    }
 │ │
 │ ├──╼ someFunction @ line 6
 │ │
 │ │    function someFunction () {
 │ ├╌╌╌╌╮
 │ │    someOtherFunction()
 │ │    }
 │ │
 │ ├──╼ Object.<anonymous> @ line 9
 │ │
 │ └╌╌╌╌╮
 │      someFunction()
 │ 
 │
 ├─┬╼ module.js
 │ │
 │ ├──╼ Module._compile @ line 571
 │ ├──╼ Object.Module._extensions..js @ line 580
 │ ├──╼ Module.load @ line 488
 │ ├──╼ tryModuleLoad @ line 447
 │ ├──╼ Function.Module._load @ line 439
 │ └──╼ Module.runMain @ line 605
 │
 └┬╼ bootstrap_node.js
  │
  └──╼ run @ line 423

Demo

Colors will vary based on your local terminal configuration


License: ISC • Copyright: ahmadnassri.com • Github: @ahmadnassri • Twitter: @ahmadnassri

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。

转载请注明:文章转载自 JavaScript中文网 [https://www.javascriptcn.com]

本文地址:https://www.javascriptcn.com/read-77041.html

文章标题:pretty-exceptions

回到顶部