browser-js-env

Calling local browser to run some js code and return the result to you. You can use nodeJs interfaces or CLI interfaces.


Keywords
browser, test, environment
License
MIT
Install
npm install browser-js-env@0.1.4

Documentation

browser-js-env

Calling local browser to run some js code and return the result to you. You can use both nodeJs interfaces or CLI interfaces.

Table of Contents

Features

  • Run js code in browser, get results, can be async.
  • Easy to run js code in different browsers.
  • Make ajax easy to test.

Installation

npm i browser-js-env --save

Install on global

npm i browser-js-env -g

Quick CLI Example

check cli options [show]

  • run sample
$ ./node_modules/.bin/jsinbrowser -h 
Usage:  jsinbrowser
    -c [js code]
    -t [test directory, default is __test_in_browser_env__]
    -k [keep window, default will close window]
    -o [open template cmd for start a browser with url]
    --clean [clean test directory after running js code]


Options:
  -h, --help  Show help                                                [boolean]


cli quick start [show]

  • run sample
$ ./node_modules/.bin/jsinbrowser --clean -c "module.exports=document.title;" 
browser-js-env:test

Quick API Example

quick run [show]

let browserJsEnv = require('browser-js-env');
browserJsEnv('module.exports = document.title', {
    clean: true
}).then((title) => {
    console.log(title);
});
  • run sample
$ node test.js 
browser-js-env:test

support promise [show]

let browserJsEnv = require('browser-js-env');

browserJsEnv(`
module.exports = new Promise((resolve) => {
    setTimeout(() => {
        resolve(12)
    }, 50);
})`,

    {
        clean: true
    }).then((value) => {
    console.log(value);
});
  • run sample
$ node test.js 
12

support commonJs (by using webpack) [show]

let browserJsEnv = require('browser-js-env');
browserJsEnv("var path = require('path');module.exports = path.join('/a', 'b/c');",

    {
        clean: true
    }).then((title) => {
    console.log(title);
});
  • run sample
$ node test.js 
/a/b/c

try using safari as a browser [show]

let browserJsEnv = require('browser-js-env');
browserJsEnv('module.exports = 2 + 8;', {
    clean: true,
    open: 'open -a /Applications/Safari.app <%=url%>' // for mac os
}).then((ret) => {
    console.log(ret);
});
  • run sample
$ node test.js 
10

try using electron as a browser [show]

const browserJsEnv = require('browser-js-env');
const electron = require('electron');
const proc = require('child_process');

browserJsEnv('module.exports = document.title', {
    // using open interface can be more flexible
    open: (url) => {
        proc.spawn(electron, [url]);
    },
    clean: true
}).then((title) => {
    console.log(title);
});
  • run sample
$ node test.js 
browser-js-env:test

try using headless chrome [show]

const browserJsEnv = require('browser-js-env');
const proc = require('child_process');

const chromeApp = '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome';

browserJsEnv('module.exports = 100 * 2', {
    open: (url) => {
        proc.spawn(chromeApp, ['--headless', '--disable-gpu', url]);
    },
    clean: true
}).then((title) => {
    console.log(title);
});
  • run sample
$ node test.js 
200

License

browser-js-env is MIT licensed


Document was generated by docway.