Wie referenziere ich lokale Dateien in einem npm-Modul?

8

Ich habe ein einfaches npm-Modul geschrieben, um meine Lenkervorlagen vorzukompilieren, wenn ich django compressor für die Nachbearbeitung einiger clientseitiger Komponenten verwende und festgestellt habe, dass ich das npm-Modul mit einigen js-Dateien versenden muss.

Momentan nehme ich an, dass niemand dies mit dem globalen Flag installiert, weil ich den Pfad zu diesen Abhängigkeiten im npm-Modul selbst fest programmiert habe

Beispiel-Layout meines npm-Moduls

/
* / bin
* /lib/main.js
* /vendor/ember.js

Jetzt in main.js möchte ich die Datei ember.js verwenden ... zur Zeit sieht mein hartcodierter Ansatz so aus

%Vor%

Nochmal - das funktioniert nur, weil ich annehme, dass Sie es lokal installieren, aber ich würde gerne glauben, dass node.js eine legitimere Möglichkeit hat, lokal eingebettete Dateien zu bekommen

Weiß jemand, wie ich das verbessern kann, um "globaler" freundlicher zu sein?

    
Toran Billups 19.01.2013, 19:02
quelle

2 Antworten

1

Sie können das Verzeichnis der aktuellen Datei aufrufen und Ihre Dateipfade relativ dazu erstellen.

%Vor%

Hoffe das hilft!

    
Matthew J Morrison 02.03.2013, 04:46
quelle
3

Eine der großen Stärken von Node.js ist, wie schnell Sie starten können. Der Nachteil dieses Ansatzes besteht darin, dass Sie gezwungen sind, die Entwurfsmuster anzupassen, um die es herum gebaut wurde.

Dies ist ein Beispiel, bei dem sich Ihr Ansatz zu sehr vom Ansatz der Knoten unterscheidet. Node erwartet, dass alles in einem Modul aus den Modulen exportiert wird, einschließlich Vorlagen.

Verschieben Sie das readFileSync in das Modul django-ember-precompile und legen Sie den zurückgegebenen Wert über einen Modulexport in lib/main.js offen.

Beispiel:

%Vor%

Sie erhalten Ihre Vorlage über

%Vor%

Dieses Beispiel kann verfeinert werden, aber die Kernidee ist die gleiche.

    
Jacob Groundwater 19.01.2013 19:53
quelle

Tags und Links