# Installing Node

Node.js is required for several Appcelerator components, including the Titanium CLI, Alloy, and the API Builder. Node.js is also required to build the Titanium SDK.

# Compatibility and download

To run all Appcelerator components, you must have Node.js 14.x or later.

On Mac OS X and Windows, if you have selected to install Titanium updates, Studio prompts you to install Node.js. On Linux, you need to manually install Node.js.

Operating System Min Node Version Max Node Version Download Location
macOS / Windows / Linux 14.X 16.X Official Website (opens new window)

# Installation

Before installing the CLI, you should decide where you want the Node Package Manager (npm) to install packages. By default npm installs into /usr/local on OS X and Linux, which requires that you run npm as root. This is not recommended. You can avoid having to run npm by doing one of the following:

  • Make the /usr/local directory writable by all:

    sudo chmod 777 /usr/local
    
  • Set npm to install to your home directory, or another directory of your choosing by setting the npm prefix. For example, you can add the following to your .bash_profile or other initialization file:

    export NPM_CONFIG_PREFIX=$HOME
    

    Alternately, you can create a .npmrc file in your home directory with the following contents:

    prefix=/path/to/home
    

    Where /path/to/home is the path to your home directory. Setting the npm prefix to your home directory causes the npm packages to be installed to $HOME/lib/node_modules and launch scripts are installed in $HOME/bin. $HOME/bin must be in your PATH.

If you change your prefix after installing npm packages, you will have to reinstall packages. If you change the permissions on /usr/local after installing packages as root, you may need to change the ownership of the npm cache folder, as described in Troubleshooting npm Problems.

# Using NPM packages in Titanium

  1. Run npm init in the app/lib folder in your Alloy project. If you are using a classic app, run the init step in your /Resources folder.

  2. Follow the steps npm gives you when doing the init step. Note: You don’t have to fill out anything if you don't need to.

  3. Execute npm i <packagename> in the /lib folder to install a package. For example, let’s set up to.imagecache (opens new window). You'd use this comment to install the package: npm i to.imagecache

  4. Add the lib/node_modules folder and the package-lock.json file to your .gitignore folder.

  5. On any other machine you want to set this up, go to your /lib folder, run npm install and all packages will be installed to your app.

# Usage of packages

Usage of a package is like another module or library file. Using the to.imagecache example:

var imageCache = require('to.imagecache');

# Dependencies

To install a package dependency,

  1. Ensure you are in the /lib folder, or if using a classic project, the /Resources folder.

  2. Execute npm i <dependency>

  3. To use the dependency, for example a module called ImageView from the to.cacheimageview (sample extension of the to.imagecache package):

    <ImageView id="myImage" module="to.cachedimageview" />
    

# Finding packages

To find all the current packages with the titanium-module, you can use this npm site search: https://www.npmjs.com/search?q=keywords:titanium-module (opens new window)

A lot of Titanium packages are found using the titanium or titanium-module keywords. Note: when creating a public common.js module and/or library file, please tag it with the titanium-module keyword.

# Troubleshooting

# Error: EONT, stat C:\Users\<USER_NAME>\AppData\Roaming\npm

The error message indicates the folder is missing. To resolve this issue, manually create the folder:

mkdir C:\Users\<USER_NAME>\AppData\Roaming\npm

# Issues installing NPM packages

If you experience an issue installing any of the npm packages, try the following:

  • Check permissions. If you originally ran npm using sudo, you may need to change the ownership of the npm cache folder.

    sudo chown -R <username> ~/.npmrc
    

    On Windows, the npm cache defaults to npm-cache in the user's home folder.

  • Clear the npm package cache:

    npm cache clean
    
  • Remove your .npmrc file.