Skip to content

Latest commit

 

History

History
142 lines (99 loc) · 4.02 KB

README.md

File metadata and controls

142 lines (99 loc) · 4.02 KB

vite-plugin-terminal

NPM version

Log in the node terminal from the browser

Open a playground online in StackBlitz

Install

npm i -D vite-plugin-terminal

Add plugin to your vite.config.ts:

// vite.config.ts
import Terminal from 'vite-plugin-terminal'

export default {
  plugins: [
    Terminal()
  ]
}

Usage

In your source code import terminal, and use it like you do with console.log.

import { terminal } from 'virtual:terminal'

terminal.log('Hey terminal! A message from the browser')

The terminal log calls will be removed when building the app.

API

Supported methods:

  • terminal.log(obj1 [, obj2, ..., objN])
  • terminal.info(obj1 [, obj2, ..., objN])
  • terminal.warn(obj1 [, obj2, ..., objN])
  • terminal.error(obj1 [, obj2, ..., objN])
  • terminal.assert(assertion, obj1 [, obj2, ..., objN])
  • terminal.group()
  • terminal.groupEnd()
  • terminal.table(obj)
  • terminal.time(id)
  • terminal.timeLog(id, obj1 [, obj2, ..., objN])
  • terminal.timeEnd(id)
  • terminal.clear()

Redirect console logs to the terminal

If you want the standard console logs to appear in the terminal, you can use the console: 'terminal' option in your vite.config.ts:

// vite.config.ts
import Terminal from 'vite-plugin-terminal'

export default {
  plugins: [
    Terminal({
      console: 'terminal'
    })
  ]
}

In this case, you don't need to import the virtual terminal to use the plugin.

console.log('Hey terminal! A message from the browser')

You can also overwrite it in your index.html head manually in case you would like more control.

  <script type="module">
    // Redirect console logs to the terminal
    import terminal from 'virtual:terminal'
    globalThis.console = terminal
  </script>

Check the Console playground for a full example.

Examples

  • Basic - Playground using every available method.
  • Console - Redirect standard console logs to the terminal.
  • Auto Import - Use unplugin-auto-import to make terminal global in your app.
  • Vue - Example of logging to the terminal from a Vue App.

Options

strip

Type: boolean
Default: true

Strip terminal.*() when bundling for production.

include

Type: String | RegExp | Array[...String|RegExp]
Default: /.+\.(js|ts|mjs|cjs|mts|cts)/
Example: include: '**/*.(mjs|js)',

A pattern, or array of patterns, which specify the files in the build the plugin should operate on when removing calls for production.

exclude

Type: String | RegExp | Array[...String|RegExp]
Default: []
Example: exlude: 'tests/**/*',

A pattern, or array of patterns, which specify the files in the build the plugin should ignore when removing calls for production.

Credits

Sponsors

License

MIT License © 2022-present Matias Capeletto