The Alloy Command-Line Interface (CLI) is a command-line tool for managing and building Alloy projects.
Command-Line Interface Installation
The Alloy command-line interface and plugin will be automatically installed by Appcelerator Studio or the Appcelerator CLI.
If there were installation problems or if you wish to install the Alloy CLI independent of the other tools, refer to the manual installation instructions below.
Manual Installation
The Appcelerator CLI needs to be installed and configured before installing the Alloy CLI. The following steps install the latest released version of Alloy:
-
Download and install Node.js from http://nodejs.org/#download, which includes the npm package manager needed to install Alloy.
-
From a console window, run the following command to install Alloy:
sudo npm install -g alloy
By default, these installation directions will install the latest Alloy release. To install a specific released version, use the same directions, except after 'alloy', add the at symbol ('@') with the version number. For instance, executing sudo npm install -g alloy@1.10.0 will install version 1.10.0.
Bleeding Edge Installation
To install the latest development version of Alloy, after installing Node.js , clone the Alloy GitHub repository and perform an npm install from the Alloy project's root directory:
git clone https: //github.com/appcelerator/alloy.git cd alloy [sudo] npm install -g . |
New
Creates a new Alloy project on top of an existing new Titanium project, that is, create a classic Titanium project first, then run the command from inside the project directory.
alloy new [<project_path>] [<project_template>] [--force] [--no-colors] |
Options |
Description |
---|---|
<project_path> |
Path to a skeleton Titanium project, otherwise the current working directory is used. |
<project_template> |
Selects the template. Choose between default for a single pane application or two_tabbed or a tabbed application. Defaults to default. |
--testapp <test_app_path> | Relative path after the alloy/test/apps/ path to a test application in the Alloy Github repo to use as the new
application. |
-f, --force |
Forces the command to execute. |
-n, --no-colors |
Disables color output. |
Generate
Creates skeleton Alloy components.
alloy generate <component> [--widgetname <widget_name>] [--outputPath
<output_path>] [--platform <platform>] [--force] [--no-colors]
|
Options |
Description |
---|---|
<component> |
Format is component specific. |
controller <name> |
Create a skeleton controller, view and style. |
jmk |
Creates |
model <name> <adapter> [schema] |
Creates a model with the specified |
migration <model_name> |
Creates a skeleton migration file for the specified model. |
style <<name> | --all> |
Creates a skeleton style file with the specified name. |
view <name> |
Creates a skeleton view and style with the specified |
widget <name> |
Creates a basic widget with the specified |
--widgetname <name> | Creates a component for the specified widget. Can only be used to create controllers, views or styles. |
-o, --outputPath <outputPath> |
Output path for generated code. Point to the 'app' directory. |
--platform <platform> | Create a platform-specific view or controller component, where <platform>
is either android , ios or windows . |
-f, --force |
Forces the command to execute. |
-n, --no-colors |
Disables color output. |
Model Format
To generate a model, first select the adapter type:
sql
for the SQLite database for the Android and iOS platform.properties
for storing models locally in Titanium SDK context.
For the sql
and properties
adapters, you will also need to specify a table schema. The sql
adapter type will also generate a migration file with the model.
The table schema format for generating models is a space-delimited list of the field name, followed by a colon (':'), followed by the data type. For example, specifying 'name:string age:number sex:varchar dob:date' will create a table with four columns: 'name' which stores a string, 'age' which stores a number, 'sex' which stores a character, and 'dob' which stores a date.
Actually, in the above example, since both the Android and iOS platforms use SQLite, none of these datatypes are available. Instead, they will be mapped based on the following:
Datatype |
SQLite Datatype |
---|---|
string |
TEXT |
int |
INTEGER |
double |
REAL |
blob |
BLOB |
decimal |
NUMERIC |
null |
NULL |
unknown datatype |
TEXT |
Install
Installs special Alloy project components.
alloy install <module> [<project_path>] |
Options |
Description |
---|---|
<module> |
Format is module specific. |
plugin |
Installs the compiler plugin to hook the Alloy project to Studio. |
<project_path> |
Path to the Alloy project, otherwise the current working directory is used. |
Compile
Compiles Alloy code to Titanium SDK code.
alloy compile [<project_path>] [--config <compiler_options>]
[--no-colors] |
Options |
Description |
---|---|
<project_path> |
Path to the Alloy project, otherwise the current working directory is used. |
-c, --config <compiler_options> |
Compiler configuration options to use. See Compiler Options below. |
-n, --no-colors |
Disables color output. |
Compiler Options
The compiler options are a list of comma-delimited assignment statements (variable=value) without any spaces. For example, specifying "beautify=false,deploytype=test" overrides the default compiler behavior to disable beautifying the generated JavaScript files and building the application for the test environment.
Refer to the event.alloyConfig
object in Build Configuration File (alloy.jmk) for a list of settable compiler options.
Run
Use the titanium build
command to run Alloy projects. See the Titanium Command-Line Interface Reference guide for more information.
i18n-extract
Inspects your TSS and JS files for instances of Titanium's localization functions, extracts the i18n key from each function and adds it to the target language's strings.xml file.
alloy extract-i18n [<language>] [--apply] |
Options |
Description |
---|---|
|
Optional. A two-letter language code that specifies the target language.
Default is |
|
Optional. If present, the command writes new localization entries to the target language's strings.xml file. If absent, a preview of the changes are displayed in the terminal window. |
The following localization functions are supported:
The syntax options for calling alloy extract-i18n
are shown below.
// Show a before and after of your i18n file . Does NOT write changes to the file . alloy extract-i18n // Write changes to "app/i18n/en/strings.xml" : alloy extract-i18n --apply // Specify "es" as the language and write the changes to "app/i18n/es/strings.xml" : alloy extract-i18n es --apply // Specify a different language ( "es" ) and preview changes: alloy extract-i18n es |
Also see Extracting localization strings in the Alloy Tasks with the CLI guide.
Copy
Make a copy of an existing view-controller, which includes the controller, XML and TSS files.
alloy copy <CONTROLLER_NAME> <COPIED_CONTROLLER_NAME> |
Move
Rename a view-controller, which includes the controller, XML and TSS files.
alloy move <CONTROLLER_NAME> <NEW_CONTROLLER_NAME> |
Remove
Removes / Deletes a view-controller, which includes the controller, XML and TSS files.
alloy remove <CONTROLLER_NAME> |
Additional Options
Options |
Description |
---|---|
-h, --help |
Outputs command usage. |
-v, --version |
Outputs the version number. |