GithubHelp home page GithubHelp logo

isabella232 / gravity Goto Github PK

View Code? Open in Web Editor NEW

This project forked from zynga/gravity

0.0 0.0 0.0 269 KB

A light-weight but powerful JS build tool/server

License: BSD 2-Clause "Simplified" License

JavaScript 99.53% HTML 0.47%

gravity's Introduction

Overview

Often when deploying JS components, you want to compile a multitude of source files down to a single build result. The benefits of doing this include faster performance from the client perspective (due to fewer http hits to load scripts), and potentially simpler integration by the developer integrating your component. Gravity was specifically designed to ease this process.

gravity is a command-line tool that reads gravity.map files.

A gravity.map is a JSON file that can be thought of as a project manifest. In it, you can specify build targets, and the source files that are used to create each target.

	{
		"final.js": [
			"src/1.js",
			"src/2.js",
			...
		]
	}

This tells gravity that you want a build product called final.js, and that it should be the result of compiling various source files (or even other build products) together.

Full documentation of gravity.map syntax can be found in SYNTAX.md.

Installation

Prerequisites:

  • node 0.8 or greater
  • git 1.7 or greater

It is recommended to install for all users:

sudo npm install -g gravity-js

However, if you prefer it can also be installed in your home dir:

npm install gravity-js

Commands

Mac/unix/cygwin users will be able to invoke "gravity" directly. To run the commands in Windows cmd.exe, just prepend "node " to the commands below.

All of the folling commands have <dir> as an optional parameter. If it is not specified, then it is assumed to be the current directory.

gravity list

To see a list of all the build products, where <dir> is the location of your project's directory (ie., wherever the gravity.map file is):

gravity list [<dir>]

gravity serve

During development, you can run gravity as a local server that will perform on-the-fly concatenation of your source.

gravity serve [<dir>] localhost:1337

The server should find an available local port to attach to, and will announce itself:

Gravity server running on http://localhost:1337/

Now you can visit http://localhost:1337/final.js to see the results. Edit a source file, then refresh the page to see the change instantly!

Can also be run as a background process.

gravity serve [<dir>] <host>:<port> &

gravity build

Come build time, run a command like this:

gravity build [<dir>] <outdir>

Gravity will take only your build targets and put them into <outdir>.

gravity pull (a.k.a get)

If you just want to see a specific build target produced and dumped to stdout, you can do this:

gravity pull [<dir>] final.js

Unit Tests

node test.js // Run unit tests silently
node test.js -v // Run unit tests verbosely

gravity's People

Contributors

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