
Xone is an open source Javascript framework for building modern web applications.
Notice
Actually this is a very early state of this repository (pre-alpha or less). We de not recommended using this repo until this message has been removed.
Installation
> npm install -g xone
Note: To easily make the Xone CLI globally available, you have to install Xone as a global npm module (also in addition to any local installation if you want to keep simple as most as possible). You can also manage multiple/custom versions of Xone as well as using the CLI without any global installations (read further).
Note: Xone binaries typically has to be installed via "xone create" or "xone install" to make full advantage of the build system and also comes with its own pre-defined folder structure (followed by some conventions). We will provide a stand-alone version optionally to skip as many conventions as possible (e.g. Xone acts like an extern Javascript Plugin). We recommended to use the full Xone build capabilities (read further).
Create New Xone Project
Create a new project inside the directory path\to\my\workspace\my_project:
path\to\my\workspace> xone create "my_project"
Create a new project inside the current directory:
path\to\my\workspace\my_project> xone create .
Force overwrite an existing Xone project:
path\to\my\workspace\my_project> xone create . --force
Note: Be careful, this command will also reset most of the existing project files!
Update existing Xone project (fetches from global npm_modules installation)
Fetch update:
> npm install -g xone
Install update to an existing project
path\to\my\workspace\my_project> xone install
Manage multiple versions
Install local version of xone:
> npm install xone@0.2.1
Compare current installed, local and global npm versions of Xone:
> xone version --current
> xone version --global
> xone version --local
Update existing Xone project (fetch from a local npm_modules installation):
path\to\my\workspace\my_project> xone install local
Update existing Xone project (fetch from any custom location):
path\to\my\workspace\my_project> xone install /lib/xone_0.2.1/
Note: To make the Xone CLI available (to make use of the keyword 'xone') it needs at least one global Xone installation. Please read further if you prefer an installation without using the Xone CLI.
Manage local npm repositories of xone (without using Xone CLI):
Install Xone locally:
path\to\my\workspace\my_project> npm install xone
Create new Xone project (the dot indicates the current directory):
path\to\my\workspace\my_project> node node_modules\xone\task\create .
Update existing Xone project:
path\to\my\workspace\my_project> node node_modules\xone\task\install
Alternatively you can use a Xone repository located in any folder (e.g. fetched via Git)
Check Xone installation (example):
path\to\my\lib\xone_0.2.1> node task/version
Create a new project:
path\to\my\workspace> node ../lib/xone_0.2.1/task/create "my_project"
Update an existing project:
path\to\my\workspace\my_project> node ../lib/xone_0.2.1/task/install
Build Xone Project
Un-compiled sources: path\to\my\workspace\my_project\app\*
path\to\my\workspace\my_project> app build
Production build: path\to\my\workspace\my_project\bin\www\*
Note: We strongly recommended use production builds for any external/public releases and use the sources only for developing, testing and may some other internal usage. To skip the build integration of Xone, you have to use the stand-alone version instead.
TODO
Xone actually requires:
NOTE: Alle these libraries are planned to become optionally.
Features
- Manage Process Environments:
- production
- development
- test
- benchmark
- Manage Rack Environments:
- webapp
- cordova
- native
- local
- browser
- Manage Platform Environments:
- Android
- iOS
- Windows
- Webkit
- Mozilla
- MSIE
- Model-View-Controller
- Supports persistent models
- Full MVC-managed handlers:
- Routes
- Events
- Cache
- Mapper
- Storage
- Threads / Worker
- JavaScript Core Library
- Codebase Dependency Management
- Supports DOM pattern in JSON format
- Template System (Static Views, Dynamic Views)
- Build System
- Template Compiler
- Layout Manager
- Support Multi-Platform-Injections
- Event Delegation
- NoSQL Persistent Storage
- GZIP Storage Data Compression
- FlexiCache
- Multi Language Support
- Specs, Integrated Test Environment (based on Jasmine)
- Debug Mode
- Debugger Tools
- Performance Tools
- Analytics/Statistic Tools
- Benchmark Integration
- Supports JavaScript Closure Compiler (make use of "Advanced Compilation" by default)
- YUI CSS Compressor Integration
- Compatible with almost each library out there
- Also can be mixed with similar technologies like: Angular or react
- Simple, fast and natural usage out of the box