npm-generierter Befehl ruft keinen Knoten auf

Ich versuche, ein Befehlszeilenprogramm node.js zu erstellen und habe ein Problem mit dem Wrapper, den npm generiert. Meine supereinfache Demo ist eine package.json-Datei:

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

Und die Datei demo-cli.js:

console.log('DEMO WORKED');

Das Problem ist, wenn ich das Modul mit installierenpm install -g Während sich der erzeugte Wrapper im Projektverzeichnis befindet, wird der Knoten mit der Datei als Parameter nicht aufgerufen. Dies ist der generierte Inhalt von demo.cmd:

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

Die Unix-Version hat das gleiche Problem. Wenn ich mir eine andere global installierte CLI anschaue, kann ich sehen, dass der Knoten wie erwartet getestet und aufgerufen wird.

:: 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" %*
)

Was ist die geheime Sauce, die npm benötigt, um die richtige Skriptdatei zu generieren? Ich habe alles versucht, was ich finden oder mir vorstellen konnte, einschließlich Entfernen der Erweiterung .js, Bevorzugen von global, Angeben der Knotenversion ... kein Glück.

Ich verwende Knoten v0.6.18 und npm v1.1.21 unter Windows 7 x64.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage