comando generado por npm que no llama al nodo

Estoy intentando crear una utilidad de línea de comandos node.js y tengo un problema con el contenedor que genera npm. Mi demo súper simple es un archivo package.json:

{
    "name": "demo-cli",
    "version": "0.0.1",
    "bin": { "demo": "bin/demo-cli.js" }
}

Y el archivo demo-cli.js:

console.log('DEMO WORKED');

El problema es cuando instalo el modulo usandonpm install -g mientras que en el directorio del proyecto, el contenedor que genera no llama a un nodo con el archivo como parámetro. Este es el contenido generado de demo.cmd:

:: Created by npm, please don't edit manually.
"%~dp0\.\node_modules\demo-cli\bin\demo-cli.js"   %*

La versión de Unix tiene el mismo problema. Mirando a otra CLI instalada globalmente, puedo ver que el nodo se está probando y se llama como se esperaba.

:: Created by npm, please don't edit manually.
@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\.\node_modules\mocha\bin\mocha" %*
) ELSE (
  node  "%~dp0\.\node_modules\mocha\bin\mocha" %*
)

¿Cuál es la salsa secreta necesaria para npm para generar el archivo de script adecuado? He intentado todo lo que pude encontrar o pensar, incluida la eliminación de la extensión .js, la preferencia global, la especificación de la versión del nodo ... sin suerte.

Estoy usando el nodo v0.6.18 y npm v1.1.21 en Windows 7 x64.

Respuestas a la pregunta(1)

Su respuesta a la pregunta