In the mean time if you get a compilation failure during installation you
have still successfully installed the module; however, you cannot use the
native bindings -- only the pure javascript bindings.

varvows=require('vows'),assert=require('assert');vardomain=require('../lib/domain')vows.describe('Project').addBatch({'A new project created with a given name':{topic:function(){returndomain.create_project("mccallum")},'should return an instance of Project':function(project){assert.instanceOf(project,domain.Project);},'should have the specified name':function(project){assert.equal(project.name(),'mccallum');},}}).export(module);// Export the Suite

/** * Project */varProject=function(project_name){this._name=project_name;};exports.create_project=function(project_name){returnnewProject(project_name);};// tells nodeJS to make the `Project` visible from outside this file// when using `require`exports.Project=Project

Checking lib/domain.js
lib/domain.js
/*jslint node: true, es5: true */
No errors found.
Start tests
Start behavior tests
♢ Project
A new project created with a given name
✓ should return an instance of Project
✓ should have the specified name
✓ OK » 2 honored (0.006s)

varvows=require('vows'),assert=require('assert');vardomain=require('../lib/domain');varUUID_PATTERN=/[0-9a-f]{8}\-[0-9a-f]{4}\-[0-9a-f]{4}\-[0-9a-f]{4}\-[0-9a-f]{8}/;vows.describe('Project').addBatch({'A new project created with a given name':{topic:function(){returndomain.create_project("mccallum");},'should return an instance of Project':function(project){assert.instanceOf(project,domain.Project);},'should have the specified name':function(project){assert.equal(project.name(),'mccallum');},'and a generated uuid':function(project){assert.equal(UUID_PATTERN.test(project.uuid()),true);}},'New projects':{topic:function(){return[domain.create_project("mccallum"),domain.create_project("mccallum")];},'should have differents uuid':function(result){assert.notEqual(result[0].uuid(),result[1].uuid());}}}).export(module);// Export the Suite

Notre console affiche donc fièrement:

Start tests
--------------------------
project_test
✔ create_project return the specified name
✔ create_project generate a valid uuid
OK: 2 assertions (15ms)
Start behavior tests
--------------------------
♢ Project
A new project created with a given name
✓ should return an instance of Project
✓ should have the specified name
✓ and a generated uuid
New projects
✓ should have differents uuid
✓ OK » 4 honored (0.003s)

...exports["create_project must generate an event of type 'project_created' in history"]=function(test){varproject=domain.create_project("mccallum");varevents=project.events();test.ok(eventsinstanceofArray);test.equal(events.length,1);test.equal(events[0].event_type(),"project_created");test.done();};

...exports["a new project must have an `events` method to retrieve its history"]=function(test){varproject=domain.create_project("mccallum");varevents=project.events();test.ok(eventsinstanceofArray);test.done();};exports["a new project must have a single `event` in its history"]=function(test){varproject=domain.create_project("mccallum");varevents=project.events();test.ok(eventsinstanceofArray);test.equal(events.length,1);test.done();};exports["a new project must have a single `event` in its history of type 'project_created'"]=function(test){varproject=domain.create_project("mccallum");varevents=project.events();test.ok(eventsinstanceofArray);test.equal(events.length,1);test.equal(events[0].event_type(),"project_created");test.done();};

Start tests
--------------------------
project_test
✔ create_project return the specified name
✔ create_project generate a valid uuid
✔ a new project must have an `events` method to retrieve its history
✔ a new project must have a single `event` in its history
✖ a new project must have a single `event` in its history of type'project_created'
TypeError: Object dummy_event has no method 'event_type'
at /Users/arnauld/Projects/cqrs-ramblings/node-app/test/project_test.js:38:23
...
FAILURES: 1/8 assertions failed (11ms)

Start behavior tests
--------------------------
♢ Project
A new project created with a given name
✓ should return an instance of Project
✓ should have the specified name
✓ and a generated uuid
New projects
✓ should have differents uuid
✓ OK » 4 honored (0.002s)