Giter Club home page Giter Club logo

jsvu's Introduction

jsvu Build status

jsvu is the JavaScript (engine) Version Updater.

jsvu makes it easy to install recent versions of various JavaScript engines without having to compile them from source.

Installation

Note: jsvu requires Node.js v8.9.0+. (jsvu follows the latest active LTS version of Node.)

Install the jsvu CLI:

npm install jsvu -g

Modify your dotfiles (e.g. ~/.bashrc) to add ~/.jsvu to your PATH:

export PATH="${HOME}/.jsvu:${PATH}"

Then, run jsvu:

jsvu

On first run, jsvu prompts you for your operating system and architecture, and the list of JavaScript engines you wish to manage through jsvu. It then downloads and installs the latest version of each of the engines you selected.

To update the installed JavaScript engines later on, just run jsvu again.

Supported engines

JavaScript engine Binary name mac64 win32 win64 linux32 linux64
Chakra chakra or ch
JavaScriptCore javascriptcore or jsc * *
SpiderMonkey spidermonkey or sm
V8 v8
XS xs (32) (32)

* JavaScriptCore requires external dependencies to run on Windows:

  • On 32-bit Windows, install iTunes.
  • On 64-bit Windows, download the latest WinCairoRequirements and add its bin64 directory to your PATH.

Integration with eshost-cli

eshost-cli makes it easy to run and compare code in all JavaScript engines that jsvu installs.

First, install eshost-cli:

npm install -g eshost-cli

Then, tell eshost-cli where jsvu installs each JavaScript engine.

Linux/Mac

eshost --add 'Chakra' ch ~/.jsvu/chakra
eshost --add 'JavaScriptCore' jsc ~/.jsvu/javascriptcore
eshost --add 'SpiderMonkey' jsshell ~/.jsvu/spidermonkey
eshost --add 'V8 --harmony' d8 ~/.jsvu/v8 --args '--harmony'
eshost --add 'V8' d8 ~/.jsvu/v8
eshost --add 'XS' xs ~/.jsvu/xs

Windows

eshost --add "Chakra" ch "%USERPROFILE%\.jsvu\chakra.cmd"
eshost --add "JavaScriptCore" jsc "%USERPROFILE%\.jsvu\javascriptcore.cmd"
eshost --add "SpiderMonkey" jsshell "%USERPROFILE%\.jsvu\spidermonkey.cmd"
eshost --add "V8 --harmony" d8 "%USERPROFILE%\.jsvu\v8.cmd" --args "--harmony"
eshost --add "V8" d8 "%USERPROFILE%\.jsvu\v8.cmd"
eshost --add "XS" xs "%USERPROFILE%\.jsvu\xs.cmd"

That’s it! You can now run code snippets in all those engines with a single command:

eshost -e 'new RegExp("\n").toString()' # https://crbug.com/v8/1982

eshost -e '(function maxCallStackSize() { try { return 1 + maxCallStackSize(); } catch (_) { return 1; }}())'

eshost -e 'Date.parse("1 Octopus 2018")'

Integration with non-interactive environments

On your personal devices, the only command you’ll ever need is jsvu as described above. There are no command-line flags to remember. 👋🏻

However, there are use cases for running jsvu within non-interactive environments (e.g. as part of continuous integration), where it’s desirable to bypass the initial jsvu prompt asking to confirm your operating system, architecture, and the list of JavaScript engines to install. Here’s how to do that:

jsvu --os=mac64 --engines=all
# Equivalent to:
jsvu --os=mac64 --engines=chakra,javascriptcore,spidermonkey,v8,xs

Security considerations

jsvu avoids the need for sudo privileges by installing everything in ~/.jsvu rather than, say, /usr/bin.

jsvu downloads files over HTTPS, and only uses URLs that are controlled by the creators of the JavaScript engine or, in the case of JavaScriptCore on Linux, the port maintainers. As an additional layer of security, jsvu performs SHA-256 checksum verification where applicable.

Author

Mathias Bynens (@mathias)

jsvu's People

Contributors

mathiasbynens avatar kfarnung avatar paulirish avatar rkirsling avatar dcodeio avatar marionebl avatar refack avatar thlorenz avatar patrick-soquet avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.