2012-10-18 4 views
7

Ich versuche CLI-Funktionalität zu meinem Npm-Paket Intercept-Proxy hinzufügen. Ich konnte keine gute Dokumentation finden, also kopierte und modifizierte ich Sachen von express.js.Kann nicht npm installieren -g Arbeit für mein Paket

ich hinzugefügt:

"bin": { 
    "intercept-proxy": "./bin/intercept-proxy" 
} 

... meine package.json-Datei und eine /bin/intercept-proxy.js erstellt, die das CLI Material enthält.

Wenn ich laufen:

npm install -g intercept-proxy 

... alles funktioniert, bis das Verbindungsteil. Dann scheitert es, zu sagen:

npm ERR! Error: ENOENT, chmod 'C:\Users\johan.obrink.24HRCOM\AppData\Roaming\npm\node_modules\intercept-proxy\bin\intercept-proxy 

... und das Protokoll sagt:

381 info linkStuff [email protected] 
382 verbose linkBins [email protected] 
383 verbose link bins [ { 'intercept-proxy': './bin/intercept-proxy' }, 
383 verbose link bins 'C:\\Users\\johan.obrink.24HRCOM\\AppData\\Roaming\\npm', 
383 verbose link bins true ] 
384 verbose linkMans [email protected] 
385 verbose rebuildBundles [email protected] 
386 verbose rebuildBundles [ 'commander', 'mkdirp', 'underscore' ] 
387 info C:\Users\johan.obrink.24HRCOM\AppData\Roaming\npm\node_modules\intercept-proxy unbuild 
388 verbose from cache C:\Users\johan.obrink.24HRCOM\AppData\Roaming\npm\node_modules\intercept-proxy\package.json 
389 info preuninstall [email protected] 
390 info uninstall [email protected] 
391 verbose true,C:\Users\johan.obrink.24HRCOM\AppData\Roaming\npm\node_modules,C:\Users\johan.obrink.24HRCOM\AppData\Roaming\npm\node_modules unbuild [email protected] 
392 verbose C:\Users\johan.obrink.24HRCOM\AppData\Roaming\npm,[object Object] binRoot 
393 info postuninstall [email protected] 
394 error Error: ENOENT, chmod 'C:\Users\johan.obrink.24HRCOM\AppData\Roaming\npm\node_modules\intercept-proxy\bin\intercept-proxy' 
395 error If you need help, you may report this log at: 
395 error  <http://github.com/isaacs/npm/issues> 
395 error or email it to: 
395 error  <[email protected]> 
396 error System Windows_NT 6.1.7601 
397 error command "c:\\Program Files\\nodejs\\node.exe" "c:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "intercept-proxy" 
398 error cwd c:\src 
399 error node -v v0.8.9 
400 error npm -v 1.1.61 
401 error path C:\Users\johan.obrink.24HRCOM\AppData\Roaming\npm\node_modules\intercept-proxy\bin\intercept-proxy 
402 error code ENOENT 
403 error errno 34 
404 verbose exit [ 34, true ] 

Ich versuchte googeln ENOENT, chown + Windows-aber nicht weiter zu kommen scheinen.

Der vollständige Code ist bei https://github.com/JohanObrink/intercept-proxy

bearbeiten up: Ich habe versucht, jetzt ist es auf OS X und das Problem ist das gleiche. Nicht Windows-bezogen - nur ich-ein-n00b verwandt anscheinend. Trotzdem kann ich nicht finden, was falsch ist.

Antwort

12

ENOENT bedeutet keine solche Datei oder Verzeichnis. Was passiert, wenn Sie dazu wechseln?

"bin": { 
    "intercept-proxy": "./bin/intercept-proxy.js" 
} 
+0

Vielen Dank! Das war's. Wissen Sie zufällig, warum Express ohne die .js auskommt und ich nicht? –

+1

Und jetzt sehe ich, dass express.js eigentlich seine bin-Datei ausdrückte - ohne .js. Deshalb hat es geklappt:/ –

+0

Lars, du willst das 'main' benutzen, nicht 'bin'. Ex. "main": "./bin/yomama" (ohne JS) – deepelement