Miramac / vscode-exec-node

Execute your current file or your selected code with node.js
ISC License
12 stars 8 forks source link

Node.js Exec

Run the current file or the code you selected with node.js.

Usage

Configuration

Clear output before execution

{
  "miramac.node.clearOutput": true
}

Show start and end info

{
  "miramac.node.showInfo": true
}

Show stdout and stderr

{
  "miramac.node.showStdout": true,
  "miramac.node.showStderr": true
}

If miramac.node.legacyMode is true (default) the extention will not use new features and options. Because of some strange problems I can't reproduce, the extension remains in legacy mode. To use the following options simply set this option to false

{
  "miramac.node.legacyMode": false
}

The folloing options need to set the legacyMode off

Set environment variables for execution:

{
  "miramac.node.env": {
      "NODE_ENV": "production"
  }
}

Add arguments for execution:

{
  "miramac.node.args": ["--port", "1337"]
}

Add options for execution:

{
  "miramac.node.options": ["--require", "babel-register"]
}

Change the node binary for execution

{
  "miramac.node.nodeBin": "/path/to/some/bin/node-7.0"
}

Some code that is executed with each run

{
  "miramac.node.includeCode": "const DEBUG = true; const fs = require('fs'); "
}

How it works

The selected code or if nothing is selected, the active file, is written in a temporarily file (something like node_<random-sring>.tmp). You don't have to save the file for execution. This file will be executed by your installed version of node.js. Therefore node has to be in the PATH.

require('child_process').spawn('node', options,[tmpFile, args])

Any data from stdout or stderr will be printed to an OutputChannel. Unfortunately console colors won't work.

Bugs and feedback: https://github.com/Miramac/vscode-exec-node/issues

Enjoy!