Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

assembot

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

assembot

Simple asset assembly bot for compiling/combining client-side js and css files.

Source
npmnpm
Version
0.2.0
Version published
Weekly downloads
13
333.33%
Maintainers
1
Weekly downloads
 
Created
Source

AssemBot

What does it do?

AssemBot is a simple asset assembler for use in developing JS web apps. It's designed for my own preferred way of development, so YMMV.

It's rather like stitch, but not exactly. It compiles an entire directory into a single, commonjs moduled, javascript file. It will also create a single .css file from all the styles in a single directory, recursively. It will transpile where appropriate (CoffeeScript, eco, less, stylus).

If you don't like the default conventions, you can configure it in your package.json file.

Installation

npm install -g assembot

You don't have to install it globally, but it comes with a pre-configured binfile to make it quick to use on a project. (It defaults to compiling ./source into public/app.js and public/theme.css)

Usage

At it's simplest:

cd my_project
assembot --build

If you want to configure it via package.json, just add an assembot section to your package and run assembot.

{
  ... Other node/npm stuff ...
  "assembot": {
    "output/my_file.js": {
      "source": "./src"
      "minify": 1
    }
  }
}

If you've not installed it globally, then you'll need to add it as a dependency to your project, then:

npm install assembot --save
./node_modules/.bin/assembot --build

Transpiler Support

AssemBot initially enables support for transpiling .coffee, .litcoffee, .eco, .dot, .ejs, .less, and .styl files. When using stylus, it will attempt to enable Nib by default as well.

Token Replacement

In your sources files you can embed data defined in your package.json file by using a special token syntax: {%- package.author -%}

AssemBot will attempt to replace all tokens in your sources files. To disable this behavior, set replaceTokens to false.

Embedded CSS

Supports compiling CSS into the JS package. Use .ecss (or .estyl or .eless) file extension. Generates a module you can use like this:

require('my/view/styles').activate()
# EmbeddCSS API:
#  .activate()   - Appends a generated <style> tag to HEAD, BODY, or document
#  .deactivate() - Removes the generated <style> tag
#  .isActive()   - Boolean 

Dev Server

AssemBot comes with a dev server, to use it:

assembot --serve

Command Line Help

You can get a list of the supported command line options too:

assembot -h

Default Configuration

The default AssemBot configuration from ./src/defaults.coffee:

exports.config=
  source: './source'
  ident: 'require'
  autoStart: no
  minify: 0 # 0=none, 1=minify, 2=mangle
  sourceMap: no # still a work in progress
  header: "/* Assembled by AssemBot {%- assembot.version -%} */"
  replaceTokens: yes
  coffee:
    bare: yes
    literate: no


exports.options=
  port: 8080
  wwwRoot: './public'


exports.assembot=
  "public/app.js": exports.config
  "public/theme.css": exports.config

Roadmap

  • v0.1 = Make it work.
  • v0.2+ = Make it better.

Todo

  • Have it look in other places than just package.json, say: component.json, build.json, assembot.json, etc.
  • Test support for handlebars and other template engines that require a runtime (ugh).

FAQs

Package last updated on 10 Mar 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts