2016-06-25 13 views
1

Ich habe ein einfaches lokales Befehlszeilenmodul, das ich auf zwei verschiedene Arten verwenden möchte (grundsätzlich verschiedene Standardeinstellungen), aber es verwendet die gleiche Kernlogik, also möchte ich diese Logik in eine dritte Entität extrahieren und diese aus der verwenden zwei EinstiegspunkteWie schreibe ich ein NPM-Modul, das mehrere Dateien verwendet?

Ich habe alles mit zwei bin Befehlsskripts arbeiten, aber jede Datei hat eine eigene Kopie der Logik zu laufen, und ich bin mir nicht sicher, wie Sie diesen duplizierten Code in eine dritte Datei innerhalb des gleichen Moduls herausziehen. Ich denke, ich könnte es schaffen, indem ich ein ganzes separates Modul erstelle und es mit require() lade, aber ich würde es lieber zusammenhalten, da es eng gekoppelt ist.

Die Struktur ist wie folgt:

bin\ 
    cmdone.js 
    cmdtwo.js 
core.js 
package.json 

Ich mag die Logik bewegen, die sowohl existiert derzeit in cmdone.js und cmdtwo.js, in core.js und es aus den beiden Dateien in bin verweisen. Ist das möglich?

Antwort

1

Wenn ich Ihre Frage richtig verstehen, dann, was Sie brauchen, ist require Funktion von nodejs

+0

Das ist grundsätzlich richtig. Ich wusste bereits über die Notwendigkeit, aber ich wusste nicht oder weiß nicht, dass es auf diese Weise verwendet werden könnte. – Josh

1

Nun, nachdem einige um mehr Stossen, entdeckte ich, dass dies funktioniert:

const test = require('../core.js'); 

Ich glaube, ich falsch verstanden die Unterscheidung zwischen Node-Modulen und NPM-Paketen. Ich habe die beiden im Grunde gleichgesetzt, aber es scheint, dass Sie Module vollständig in Paketen erstellen und verwenden können, sie müssen nicht eins zu eins sein.

Verwandte Themen