@aplus/node

Alloy+ Plugin for making Alloy code use the nodejs style module resolution


Keywords
Appcelerator, Alloy, MobileHero, Alloy+, aplus, plugin, node
License
MIT
Install
npm install @aplus/node@0.0.5-beta.8

Documentation

aplus-node logo

⚠️ CAUTION: PRE-PRODUCTION BETA ⚠️
(breaking changes may be introduced before 1.0.0 release) **

alloy+ plugin: node

Overview

Why should I use this plugin?

Alloy+ plugin node is a plugin for making Alloy use the nodejs style of module resolution when using require(). This allows you to install (via npm) and use many packages that are available today for node.js applications.

What is Alloy+?

Alloy+ is an entire framework built around Appcelerator Mobile and their Alloy product. The idea for this framework was built upon the concepts of MobileHero Adamantium and a desire to customize and extend Appcelerator Alloy for developers. How much faster or stronger all depends on YOU, the developer.

There will be an assortment of alloy+ plugins (available as npm modules) that you can install in your project to help you take your existing development tools furthur than possible today. You can choose which modules are executed in your config.json file (which is part of your Alloy project). You can also easily create your own plugins by simply creating a npm module that follows a simple convention.

Dependencies

All modules should be installed in the root directory of your Appcelerator mobile project (the directory containing tiapp.xml).

Alloy+ plugins are executed by Alloy+ Core. You can install core by itself or bundled with several Alloy+ plugins.

Install Alloy+ Core only

npm version

npm install --save @aplus/core

Install Alloy+ Bundle 📦

npm version

npm install --save @aplus/bundle

Installing this plugin

All modules should be installed in the root directory of your Appcelerator mobile project (the directory containing tiapp.xml).

npm version

npm install --save @aplus/node

Usage

To use this installed plugin in your app, merge the following to your app's config.json file:

    {
        "tasks": [ "@aplus/node" ]
    }

In default mode, the task will run in the postcompile stage of the Alloy build process so that any generated files have already been placed in the resource folder.

Examples

Fix require resolve issues in the Platform-specific resource folder

    "postcompile": [ "@aplus/node" ]

Process all .js and .json files but skip backbone.js

    {
        "tasks": [
            {
                "module": "@aplus/node",
                "includes": [ "**/*.js", "**/*.json","!backbone.js" ]
            }
        ]
    }

Add a core module: mycore

    {
        "modules": {
            "core": [
                {
                    "id": "mycore",
                    "path": "path/to/mycore"
                }
            ]
        }
    }

Add a fallback module: bluebird

    {
        "modules": {
            "fallback": [
                {
                    "id": "bluebird",
                    "path": "@mobile/bluebird"
                }
            ]
        }
    }

Supported scenarios

The following scenarios are valid and should work. Check the status below to see which have been tested and are working in the current build.

  • Requiring a module from the alloy directory -- require('alloy/moment')
  • Requiring a module from the root node_modules directory -- require('@mobile/bluebird')
  • Requiring core module (path) -- require('path')
  • Requiring a module with index.js -- require('test')
  • Requiring a module with main property in package.json -- require('test')
  • Requiring a module with relative path -- require('./mymodule')
  • Requiring a module with concatenated string -- require('lo' + 'dash')

Other Alloy+ Plugins

Coming Soon! 📣

  • babel: Run babel transformations on your code during the build process
  • es6: Use ES6/ES2015 code in your apps via babel transformations!
  • node: Make require statements in your app support nodejs packages installed via npm
  • npm: Execute npm during the Alloy build process
  • underscore: Fix some issues with the usage of underscore in Alloy and allow upgrading to lodash

You can also search for more plugins developed by the community.

Need Help?

Please submit an issue on GitHub and provide information about your setup.

License

This project is licensed under the terms of the MIT license. See the license.md file. This means you have full access to the source code and can modify it to fit your own needs.

Legal

Superhero Studios Incorporated and this project are in no way affiliated with any of the following companies:

  • Appcelerator, Inc
  • Axway Inc
  • Apple Inc
  • Google Inc

Alloy is developed by Appcelerator and the community and is Copyright (c) 2012 by Appcelerator, Inc. All Rights Reserved. Alloy is made available under the Apache Public License, version 2. See their LICENSE file for more information.