112 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # npm-haxe 
 | |
| [](https://travis-ci.org/HaxeFoundation/npm-haxe)
 | |
| [](https://ci.appveyor.com/project/HaxeFoundation/npm-haxe)
 | |
| [](https://david-dm.org/HaxeFoundation/npm-haxe)
 | |
| 
 | |
| Installs [Haxe](http://haxe.org) using [Node Package Manager](https://www.npmjs.com/) aka `npm` 
 | |
| 
 | |
| ## Key-features
 | |
| 
 | |
| * Global or per-project, sandboxed, standard Haxe installation
 | |
| * Includes [Haxelib](http://lib.haxe.org/) and [Neko](https://nekovm.org/)
 | |
| * Tested on Ubuntu/Linux and Windows
 | |
| 
 | |
| ## Usage
 | |
| 
 | |
| ### CLI installation
 | |
| 
 | |
| ```bash
 | |
| npm install haxe
 | |
| ```
 | |
| 
 | |
| By default, this will make `haxe` and `haxelib` available to [npm scripts](https://docs.npmjs.com/misc/scripts) only,
 | |
| with haxelib repository sandboxed to your current working directory.
 | |
| 
 | |
| To have `haxe` and `haxelib` commands available globally, use the `-g` flag.
 | |
| This will also make the haxelib repo global.
 | |
| 
 | |
| ### Package.json sample
 | |
| 
 | |
| ```js
 | |
| {
 | |
|   "scripts":{
 | |
|     "postinstall": "haxelib --always install build.hxml",
 | |
|     "build": "haxe build.hxml"
 | |
|   },
 | |
|   "dependencies": {
 | |
|     "haxe": "4.1.4" // the npm haxe module
 | |
|   },
 | |
|  "haxeDependencies": {
 | |
|    "haxe": "3.4.7", // haxe version
 | |
|    "haxelib": "3.3.0", // haxelib version
 | |
|    "neko": "2.2.0", // neko version
 | |
|    "pixijs": "4.5.5", // additionnal haxelib dependency
 | |
|    "perfjs": "1.1.18"
 | |
|  }
 | |
| }
 | |
| ```
 | |
| 
 | |
| Please notice the `--always` flag in the `haxelib` command, to avoid having to confirm haxelibs installation.
 | |
| 
 | |
| ### Running Haxe from NodeJS
 | |
| 
 | |
| This package also comes with the minimal bindings to run the Haxe compiler from NodeJS.
 | |
| 
 | |
| 
 | |
| ```js
 | |
| var haxe = require('haxe').haxe;
 | |
| var haxelib = require('haxe').haxelib;
 | |
| 
 | |
| // all commands return a ChildProcess instance
 | |
| 
 | |
| haxe( "-version" );
 | |
| haxelib( "install", "hxnodejs" );
 | |
| 
 | |
| var server = haxe("--wait", "6000");
 | |
| ```
 | |
| 
 | |
| See also [test.js](https://github.com/HaxeFoundation/npm-haxe/blob/master/test.js)
 | |
| 
 | |
| 
 | |
| ### Configuration options
 | |
| 
 | |
| The following configuration options can be set in your package.json. 
 | |
| 
 | |
| Please note they must be set before installing the package.
 | |
| 
 | |
| ```json
 | |
| "haxeDependencies": {
 | |
|    "haxe": "3.4.7",
 | |
|    "haxelib": "3.3.0",
 | |
|    "neko": "2.2.0",
 | |
|    "pixijs": "4.5.5",
 | |
|    "perfjs": "1.1.18"
 | |
|  }
 | |
| ```
 | |
| 
 | |
| #### Version
 | |
| 
 | |
| See [Haxe Download list](http://haxe.org/download/list/).
 | |
| Please notice the directory name in the archive must match.
 | |
| 
 | |
| In this case, the `haxeDependencies.haxe` value is still used, and must match the one of the directory extracted from the archive.
 | |
| 
 | |
| #### Haxelib
 | |
| 
 | |
| `haxeDependencies.haxelib` must match a release from the [official Haxelib repo](https://github.com/HaxeFoundation/haxelib/releases)
 | |
| 
 | |
| ### Known issues
 | |
| 
 | |
| The package relies on the `node` command, which [has issues on some Ubuntu versions] (http://stackoverflow.com/questions/21168141/cannot-install-packages-using-node-package-manager-in-ubuntu).
 | |
| 
 | |
| If you get an error similar to this :
 | |
| ```
 | |
| sh: 1: node: not found
 | |
| npm WARN This failure might be due to the use of legacy binary "node"
 | |
| npm WARN For further explanations, please read /usr/share/doc/nodejs/README.Debian
 | |
| ```
 | |
| Just install the `nodejs-legacy` package:
 | |
| ```bash
 | |
| sudo apt-get install nodejs-legacy
 | |
| ```
 |