8 Stimmen

Hilfe bei der Anforderung eines npm-Moduls in node.js

Ich habe das Gefühl, ich übersehe hier etwas sehr Grundlegendes...

Ich installiere also eine npm-Bibliothek mit npm install somelib . Und nach dem, was ich gelesen habe, sollte ich dann einfach eine

var somelib = require('somelib');

Aber es wird nichts gefunden. Ich habe eine node_modules Verzeichnis im Root meiner Anwendung, aber es scheint es nicht aufzufangen.

Ich habe versucht require.paths.push('node_modules') aber es hilft nicht. Das einzige, was zu funktionieren scheint, ist dies:

require.paths.unshift('.');
var somelib = require('node_modules/somelib/lib/somelib');

Das gibt mir das Gefühl, dass dies viel mehr Arbeit ist, als ich tatsächlich tun muss, um eine npm-Bibliothek zu laden. Was mache ich hier falsch? Ich dachte, dass die Installation von Modulen in der App bedeutete, dass ich nicht mit Umgebungsvariablen oder Pfaden viel zu futzeln haben?

4voto

balupton Punkte 44311

Es ist möglich, dass somelib nicht über eine main Datei, die in ihrem package.json oder dass sie falsch referenziert ist. Wenn somelib hat keine main hat aber eine directories.lib dann können Sie require('somelib/thefile.js') stattdessen.

Wenn somelib in coffeescript geschrieben ist und Ihre Anwendung nicht, müssen Sie require('coffee-script') Erstens.

Aktualisierung: als js2coffee coffeescript ist, gehe ich davon aus, dass Sie Letzteres tun müssen.

1voto

Amadan Punkte 177506

Der spezifische Modulname anstelle von "somelib" könnte helfen... aber überprüfen Sie die Paket package.json Datei. Anzeige der require.paths und vergleichen. Informieren Sie sich über Node's Modulsystem

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X