Skip to content

Redesign of the existing node.js build-tools for sproutcore

Notifications You must be signed in to change notification settings

enquora/build-tools

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Redesign of the sproutcore buildtools.

WARNING: these buildtools do not work yet and are in constant state of flux as the design is fleshed out 
and functionality is added.

Design

In the original Garcon design the major components of a build tools set were partly intermixed in the code.
This redesign separates these major components: 
 1. application + dependencies on disk, 
 2. representation of an application, for example as server representation (development environment), 
    and saving/deploying representation

In addition to these components also transforming functionality is used on two different levels: 
  - file level: transforming content of single files (coffee script, typescript etc)
  - framework level: transforming content of sets of files, usually of the same type (sass, compass, less)

With the exception of layer 1 everything is a plugin.


Plugin:

- Plugins are singletons. 
- Plugins are defined on the app, and should internally declare on what level they are supposed to work
- Plugins should take care of caching results if necessary
- Plugins can be of three types, depending on the level of operation
   - file level: transforming content of files (coffeescript, typescript)
   - framework level: transforming content of sets of files (sass, compass, less)
   - app level: transforming the way the app is represented (saving plugins, serving plugins)


Project layout

The project layout is more or less the same, only the configuration files have changed.
The root of the project should contain a project.json file (see example).
A framework can also contain a json file (name should be the same as the framework name), which contains extra information
about the framework, including dependencies (!).
  
Commands

There is essentially one command: "sproutcore [action]"
The default action of the command, when executed in the project folder is to start the dev server.
Anything else should be defined. Currently only build is recognised to start a build.
Generators can easily be added later (if necessary).

About

Redesign of the existing node.js build-tools for sproutcore

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published