Coder Social home page Coder Social logo

sbt-js-engine's Introduction

sbt-js-engine

Build Status

This plugin mainly provides support for the authoring of sbt plugins that require js-engine.

Of particular note is SbtJsTaskPlugin. This plugin provides an abstract base intended to be used for creating the various types of plugin for sbt-web. At this time the types of plugin are "source file plugins" and "other".

Source file plugins use the sources and sourceDirectories sbt keys and process files from there. Plugins of this type can optionally produce managed resources.

The other types of plugin are ones that wish to just invoke the js engine and so there are helper functions to do that.

The following options are provided:

Option Description
command The filesystem location of the command to execute. Commands such as "node" default to being known to your path. However there path can be supplied here."
engineType The type of engine to use i.e. CommonNode, Node, PhantomJs, Rhino or Trireme. The default is Trireme.
parallelism The number of parallel tasks for the JavaScript engine. Defaults to the # of available processors + 1 to keep things busy.
npmTimeout The maximum amount of time to wait for npm to do its thing.

The following sbt code illustrates how the engine type can be set to Node:

JsEngineKeys.engineType := JsEngineKeys.EngineType.Node

Alternatively, for command and engineType you can provide a system property via SBT_OPTS, for example:

export SBT_OPTS="$SBT_OPTS -Dsbt.jse.engineType=Node"

and another example:

export SBT_OPTS="$SBT_OPTS -Dsbt.jse.command=/usr/local/bin/node"

npm

sbt-js-engine also enhances sbt-web with npm functionality. If a package.json file is found in the project's base directory then it will cause npm to run.

npm extracts its artifacts into the node_modules folder of a base directory and makes the contents available to sbt-web plugins as a whole. Note that sbt-js-engines loads the actual source code of npm via a WebJar and invokes an "npm update". Any external npm activity can therefore be performed interchangeably with sbt-js-engine in place.

Note that the npm functionality requires JDK 7 when running Trireme given the additional file system support required. If JDK 6 is required then use Node as the engine.

© Typesafe Inc., 2014

sbt-js-engine's People

Contributors

benmccann avatar huntc avatar jroper avatar pvlugter avatar

Watchers

 avatar  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.