Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
(unmaintained, deprecated, abandoned) javascript build tool to bundle client side code with an import syntax
JavaScript CoffeeScript LiveScript
tag: 0.0.2

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
src
tests
.gitignore
cmd.js
jspackage.js
package.json
readme.md
test.js

readme.md

Client side build tool with dependency management

Ever wanted to have an #import statement in your favorite language which compiles into JavaScript that works like #include in other languages? Well now you have one! Importing files and concatenating them in the right place is now as easy as:

#import "some_js_file"
#import "another_one"
#import "even_coco_is_supported"
#import "and_livescript"

# some code using the imported files here...

In JavaScript, the //import directive is used instead of #import.

Be sure to install the languages you wish to use with npm install -g.

Features

  • File extensions are optional and will be automatically resolved if not included.
    • In fact it is recommended to never use file extensions when importing.
  • Files will only be included once in the resulting code, regardless of how many times a file is imported.
  • If used as a server, only modified files will be recompiled on subsequent requests.
  • Compiling CoffeeScript, JavaScript, Coco, and LiveScript source files are included out of the box. You can add more to the compile.extensions object.
    • Or add support to the bottom of src/jspackage.coffee and submit a pull request.

Command line usage

When installed with npm install jspackage -g, a command line tool called jspackage will be made available.

Usage: jspackage input_file [output_file] [options]

Available options:
  -h, --help          shows this help section
  -p, --port NUMBER   start a server to serve the file on this port
  -b, --bare          compile without a top-level function wrapper

If an output file is not provided, a server will be started at
the port provided by the --port or -p option or 8080 by default.

Server example

http = require 'http'
{compile} = require 'jspackage'

server = http.createServer (req, res) ->
 res.writeHead(200)

 compile 'mainfile', (err, code) ->
   if err
     res.end 'throw unescape("' + escape(err.toString()) + '");'
   else
     res.end code

server.listen(8080)

Out-of-the-box supported languages

  • JavaScript
  • Coffee-Script
  • LiveScript
  • Coco

To add out-of-the-box support for another language, add it to the bottom of src/jspackage.coffee and submit a pull request.

To add support by wrapping the code, add an entry to the extensions object:

{extensions} = require 'jspackage'
extensions['.lua'] =
  compile: (code) -> lua.compile(code)
  import_re: /^--import (".+")$/gm

Developing jspackage

To compile and watch:

coffee -wco . src/

To run the tests:

npm test

License

Licensed under the MIT license.

Something went wrong with that request. Please try again.