Build your Titanium CommonJS Modules as they should be: as CommonJS packages, allowing more than one file.
The Titaniumifier Wiki is where you’ll find the most up to date documentation.
Installation and usage
If you’re serious with it you can use the Grunt plugin.
If you just want to test it out you can use the
titaniumifier CLI (good for quick tests):
# install it globally $ [sudo] npm install --global titaniumifier # move into a node package $ cd path/to/project # this will build dist/NAME-commonjs.VERSION.zip $ titaniumifier --out dist
What is it for?
You’ll want to give
titaniumifier a try if you want to write
- a Titanium CommonJS distributable module
- more complex than a single file,
- a package that works on both Node.js and Titanium SDK;
- a wrapper for an existing package existing on
Once you’re done writing your package you’ll be able to publish it on
npm for users to
- use it with Node.js;
- include it as a dependency of a titaniumified package.
What is it not for?
titaniumifier you still wont be ablo to
- use or depend on ‘complex’ e ‘deeply node-ish’ packages like
- install Node.js packages in your app using
npm install ...;
- Make the built module easily debuggable from Titanium Studio (this is pretty big;)
- Document and explore transpilation (this is a research mostly related to source maps/debug features;)
- Make titaniumified repositories crawlable from
- Shim the following globals
- Shim the following built-ins
fswork with it.)
The shimming process could be a community effort into the development of
ti-net etc. Contact us if you’re interested in working on it. In case don’t limit yourself to pure JS, give native development a chance.
The reference packages have been tested extensively from Titanium SDK 3.2 onward. There should be no reson for titaniumified packages to not work on older SDK versions.
Issues with Titanium SDK 3.x will be considered critical. With older versions we’ll try to do our best.
Because it does not mangle your
Resources folder it is compatible with Alloy and TiShadow (and similars.) Please report any issue you have.
Node.js (in packages)
Currently Node.js 0.10 environment is shimmed in the packaging process. Once Node.js 0.12 is out there will be some interesting challenge to cope with (generators, WeakMap etc.)
Once that happens we’ll shim whatever is necessary.
This code is tested against Node.js 0.10 and 0.11.
Please steal this code (aka examples)
At the moment, you’ll use
titaniumifier through its
There are 2 reference packages at the moment:
ti-superagentWhich wraps @visionmedia’s
liferay-connectorWhich is a connector for our Portal Framework of choice, Liferay
Contributing and whishlist
If you feel like helping, we’ll accept pull requests with great joy.
Here are a few ideas to help this project:
- A Gulp plugin (here’s a link to get you started)
- Even more unit-tests (yes please!)
We love feedback
Please, don’t be afraid in opening new issues, even just for asking some help.
Humbly made by the spry ladies and gents at SMC.
This library, titaniumifier, is free software ("Licensed Software"); you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; including but not limited to, the implied warranty of MERCHANTABILITY, NONINFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA