Project

jsus

0.01
No commit activity in last 3 years
No release in over 3 years
Javascript packager and dependency resolver
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

What is it?

Ruby implementation of javascript packager / dependency resolver.

Why?

As a javascript programmer, you often need to split your code into multiple files. When you have 50+ different modules / libraries, you need some way to resolve complex dependencies and package all you need and nil you don't. Jsus is an utility that allows you to do just that: package your libraries into one piece with all dependencies included.

Features

  • Jsus works with mootools-style packages. That means you specify a package.yml / package.json file with package structure for every library/bigger module you have. Source files should also have special headers denoting their requirements and what they provide.
  • Jsus automatically resolves dependencies, so you don't have to worry about order issues or anything else.
  • Jsus allows you to make "extensions". Extension is a monkey-patch you can apply to any other library. Because sometimes you want to make project-specific change to a library you don't have control over and you want to be able to update this library without applying manual patches from their source.
  • Jsus uses murdoc for doccu style docs generation.
  • Jsus generates special json files denoting source and resulting project structure which can be useful for later introspection.
  • Jsus can also generate a special js file with loader for your dependencies, so that you don't need to repackage everything during development cycle.

Examples

Using with Rails / Sinatra / Whatever

Jsus comes with a middleware in its backpack. See rails example and sinatra example.

Plans

These are rather long-term, for when I get to have time and mood to do those:

  • Rails integration
  • npm packages support

NB:

  • I don't have any particular roadmap or plans for more features
  • However, I am open for any suggestions
    • Bonus points for suggestions with pull-requests

License

Public Domain, details in UNLICENSE file.