Skip to content

(unmaintained, deprecated, abandoned) javascript build tool to bundle client side code with an import syntax

Notifications You must be signed in to change notification settings

andrewrk/jspackage

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bundle client side code with inline dependency declaration syntax

Do not use this. Use browserify instead.

Synopsis

# in your source code, declare the files you depend on:

#depend "some_js_file"
#depend "or_some_coffee_file"
#depend "even_coco_is_supported"
#depend "some/path/and_livescript"

# leave off the top-level function wrapper
#depend "vendor/Audiolet" bare

# some code using the files here.

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

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

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
  -w, --watch      watch source files and recompile when any change
  -l, --lib PATH   add an additional search directory for source files

Features

  • File extensions are automatically resolved, and in fact are not allowed in depend statements. This goes for the input_file too.
  • Files will only be included once in the resulting code, regardless of how many times a file is depended upon.
  • Compiling CoffeeScript, JavaScript, Coco, LiveScript, and Iced CoffeeScript source files are included out of the box. You can add more to the compile.extensions object.
    • Or add support to the bottom of lib/jspackage.js and submit a pull request.
  • Includes a --watch mode which automatically recompiles source files when they change.
  • Ability to supply more source code search paths with --lib.

Server example

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

server = http.createServer (req, res) ->
  res.writeHead(200)
 
  compile {mainfile}, (err, compiled_code) ->
    if err
      res.end 'throw unescape("' + escape(err.toString()) + '");'
    else
      res.end compiled_code
 
server.listen(8080)

Out-of-the-box supported languages

  • JavaScript
  • Coffee-Script
  • LiveScript
  • Coco
  • Iced-Coffee-Script

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

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

{extensions} = require 'jspackage'
extensions['.lua'] =
  require: 'npm-lua-package'
  compile: (code, options) ->
    require('npm-lua-package').compile(code, bare: options.bare)
  depend_re: /^--depend "(.+)"( bare)?$/gm

About

(unmaintained, deprecated, abandoned) javascript build tool to bundle client side code with an import syntax

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 95.6%
  • CoffeeScript 2.6%
  • LiveScript 1.8%