JamesMGreene / node-flex-sdk

A Node.js module to download and "install" the latest open source Apache/Adobe Flex SDK.
MIT License
31 stars 11 forks source link

Build Status

flex-sdk

An NPM wrapper for the Apache Flex SDK / Adobe Flex SDK.

Building and Installing

npm install flex-sdk

Or grab the source and

npm install .

What this is really doing is just grabbing a particular "blessed" (by this module) version of the Flex SDK. As new versions of the Apache/Adobe Flex SDK are released and vetted, this module will be updated accordingly.

The package has been set up to fetch the Flex SDK and run mxmlc for MacOS (darwin), Linux based platforms (as identified by Node.js), and Windows. If you spot any platform weirdnesses, let me know or send a patch.

External Dependencies

If you intend to use this module after it is installed, almost all of the Flex SDK binary/executable files have an implicit dependency on Java being installed on the system and that it is available in the PATH such that it can be invoked just by typing the command java.

Running

bin/mxmlc [mxmlc arguments]

Check out the full list of mxmlc command line options for more information.

And npm will install a link to the binary in node_modules/.bin as it is wont to do.

Running via node

The package exports an object contains:

Below is an example of using this package via node.

var childProcess = require('child_process');
var flexSdk = require('flex-sdk');
var binPath = flexSdk.bin.mxmlc;

var childArgs = [
  'arguments to pass to mxmlc',
  path.join(__dirname, 'fileToCompile.as')
];

childProcess.execFile(binPath, childArgs, function(err, stdout, stderr) {
  // handle results
});

Versioning

The NPM package version tracks the version of the Flex SDK that will be installed, with an additional build number that is used for revisions to the installer when necessary.

As such, 4.6.0-0, 4.6.0-1, and 4.6.0-2 will all install Flex SDK v4.6.0 but each has newer changes to the installer than the previous.

For the full list of available versions, see FlexSDKs.md.

Purpose

This is an NPM wrapper and can be used to make the various binary executables from the Apache/Adobe Flex SDKs (e.g. mxmlc) conveniently available. It is not a Node.js wrapper.

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

Release History

License

Copyright (c) 2014 James M. Greene
Licensed under the MIT license.