Skip to content

HaxeFoundation/npm-haxe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

npm-haxe v5

TravisCI Build Status AppVeyor Build Status dependencies Status

Installs Haxe using Node Package Manager aka npm

WARNING : The version contains breaking changes from npm-haxe v4

Key-features

  • Global or per-project, sandboxed, standard Haxe installation
  • Includes Haxelib
  • Includes Neko
  • Support both Haxelib and NPM dependencies
  • Tested on Ubuntu/Linux and Windows

Usage

CLI installation

npm install haxe

By default, this will make haxe and haxelib available to npm 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

{
  "scripts":{
    "postinstall": "haxelib --always install build.hxml",
    "build": "haxe build.hxml"
  },
  "dependencies": {
    "haxe": "^5.0.0" // 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
   "tamina": "git+https://github.com/damoebius/taminahx.git" //haxelib git dependency
 }
}

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.

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

Configuration options

The following configuration options can be set in your package.json.

Please note they must be set before installing the package.

"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. 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

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:

sudo apt-get install nodejs-legacy