Skip to content

Latest commit

 

History

History
124 lines (96 loc) · 4.84 KB

README.md

File metadata and controls

124 lines (96 loc) · 4.84 KB

This is the development branch of Square, if you are looking for the current version that is released in npm, please switch branches to master

o-o  o-o o  o o-o o-o o-o       | Square is a modulair build system for building
 \  |  | |  | |-| |   |-        | front-end code.
o-o  o-O o--o o o-o   o-o       |
       |                        | Current status: Stablizing
       o                        | Version: 0.0.10

Square

The purpose of square is to provide you with building blocks to create an advanced and maintainable build system so you can streamline your development process and be more productive on a daily basis.

Features

  • Transparent support for meta languages such as CoffeeScript, stylus, less and sass. The only requirement for this is that the correct file extension is used so it can be matched with our compilers.
  • Packages that are not commonly used by developers are lazy installed using the NPM package. This reduces the amount of bloat that needs to be installed.
  • Automatic inlining files based on special square comment statements, the only restriction to this is that the same file type should be used as these files are not transparently processed.
  • Fully customizable by the user.
  • Supports fucking awesomeness.

Pretty hinting Watching

Installation

The square build system is build upon Node.js and it requires a minimum version of 0.8. If Node.js is not yet installed on you system you can follow the installation guide or do:

git clone git://github.com/joyent/node.git
cd node
git checkout v0.8.0 # check nodejs.org for the latest stable version
./configure
make
make install

In addition to having Node 0.8 installed on your system it might also require sudo privileges for installing the square binary in your /usr/bin directory. I assume that you also have NPM (Node Package Manager) installed together with your Node.js installation. If not, install it as well. It is bundled in the recent node.js version.

Now that we have all our dependencies installed we can start installing square:

npm install square -g

If the installation fails because you don't have enough privileges you should add sudo in front of the NPM installation command:

sudo npm install square -g

If you want to minify your code you should also have the java binary installed on your machine as both YUI and Google Closure compiler are build on top of it.

Documentation

Command line flags

  1. watch, --watch
  2. filename, --filename
  3. bundle, --bundle
  4. extension, --extension

Main pages

  1. The square.json build file
  2. Transparent pre-processing
  3. Comment directives

Development

If you are interested in developing or contributing code to square you can clone this github repository and use the make install && sudo make install command. This step does require you to have both git and make installed on your system.

git clone https://github.com/observing/square.git
cd square
make update
sudo make install

This ensures that the square binary is symlink so every change you make to the source code is directly reflected in the binary.

### License (MIT)

Copyright (c) 2012 Observe.it (http://observe.it) opensource@observe.it

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.