1.0.4 • Published 10 years ago

web-build-creator v1.0.4

Weekly downloads
22
License
-
Repository
github
Last release
10 years ago

Features

  • Javascript, CSS and HTML compression
  • File and directory tree synchronisation with renaming
  • File and directory watching with automatic compile
  • File merging
  • Gzip compression
  • Coffeescript\Coffeekup support
  • Inheritable configuration

Dependencies

  • nodejs

all other dependencies are included.

Installation

npm install web-build-creator

Alternative

git clone https://github.com/Intera/web-build-creator.git
npm install path-to-cloned-directory

Usage

  • Create a Javascript file - this can be executable
  • Define a configuration object
  • Load the wbc module
  • Call wbc.create_build(config)
  • Or call wbc.watch_create_build(path, config)

Configuration

Example

The configuration object is a javascript object

{}

and can have the following keys

  • debug
  • html
  • script
  • source_dir
  • style
  • sync
  • target_dir

Following are descriptions for the key associations.

script

script: [
	{
    target: target,
    path_prefix: string,
		sources: sources,
		gzip: boolean
	},
  ...
]
  • Sources can be a single path or an array of paths, with or without filename suffixes. Example: "js/test" stands for "js/test.js"
  • The value of path_prefix is prepended to all source paths
  • Target is one path, relative to the target_dir
  • Gzip, if true, creates a gzip compressed copy of the file with the same name and a .gz suffix. Can also be omitted or false

style

style: [
	{
    target: target,
    path_prefix: string,
		sources: sources,
		gzip: boolean
	},
  ...
]
  • Sources can be a single path or an array of paths, with or without filename suffixes. example: "css/test" stands for "css/test.css".
  • The value of path_prefix is prepended to all source paths
  • Target is one path, relative to the target_dir
  • Gzip, if true, creates a gzip compressed copy of the file with the same name and a .gz suffix. Can also be omitted or false

html

html: [
	{
    target: target,
    path_prefix: string,
		sources: sources,
		gzip: boolean
	},
  ...
]
  • Sources can be a single path or an array of paths, with or without filename suffixes. Example: "html/test" stands for "html/test.html".
  • The value of path_prefix is prepended to all source paths
  • Target is one path, relative to the target_dir
  • Gzip, if true, creates a gzip compressed copy of the file with the same name and a .gz suffix. Can also be omitted or false

sync

sync: [
  path,
	[source-path, target-path],
	...
]

path can be a single path relative to source_dir, or a two element array with paths where the first path is the source path and the second is the target path. Directory structures are created automatically. Existing files are overwritten and never deleted.

other keys

keydescriptiondefault value
debugif debug is true the js/html/css files are not compressedfalse
source_dirpath prefix for source files""
target_dirpath prefix for compiled target files"../compiled/"

File watching

require("web-build-creator").watch_create_build("source", build-config)

stop with ctrl+c

Caveats

If you compress HTML, you must use semicolons for inline Javascript, and line-comments can only be used for the last line of a <script> tag.

Developer infos

The included dependencies as node modules are:

  • clean-css
  • coffee-script
  • html-minifier
  • ncp
  • uglifyjs
  • underscore

It is written in coffeescript for the most part.

Possible enhancements

  • lesscss support

Similar projects

cake-flour