Wie benötigen eine andere Datei als die npm-main-Datei in Knoten?
Paket.json:
...
"name": "mypackage",
"main": "src/index.js"
...
Verzeichnis-Struktur:
|- src/
|--- index.js
|--- other.js
Kann ich verlangen src/index.js
mit require('mypackage');
, aber wie kann ich festlegen, dass src/other.js
?
Wenn die Antwort require('mypackage/src/other');
gibt es einen Weg, es zu machen, so kann ich verlangen es mit require('mypackage/other');
(D. H. Lehr-Knoten, was die Quelle-Datei-Verzeichnis ist von Ihrem Modul?
- Ich würde persönlich gerne wissen, die Antwort auf diese Frage. Vielen Dank für die Frage zu Favoriten Hinzufügen
- Leider denke ich, dass die Antwort auf Ihre zweite Frage Nein. Ich fand mich wollen, die gleiche Sache in dieser Woche und in Sie suchen, aber ich habe nicht einen Weg finden. Wenn ich falsch bin, ich werde sein interessiert die Antwort auch. Soweit ich weiß ist die nächstgelegene Sie kommen können, das wäre eine
src/package.json
undnpm link
aussrc/
beim entwickeln und verwenden, deren Inhalt bei der Veröffentlichung oder tun, was immer Sie brauchen, mit der Sie beim erstellen des Pakets. - wenn Sie möchten, verwenden Sie die vollständige Pfad, die Sie beachten sollten, um Ihre aktuelle Verzeichnis, von wo aus Sie stellen erfordern. Zum Beispiel, wenn Sie benötigen aus anderen Ordner in MeinPaket Sie schreiben etwas wie dieses: require('../src/andere")
- Sie könnten kopieren Sie die Dateien in das root Ordner von Ihrem Verlag Skript.
- Die meisten Projekte mit ähnlichen use-case einfach alle Ihre "öffentlichkeit" - Module direkt in das root-Paket-Ordner, mit Unterverzeichnissen, die nur für interne Sachen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
AFAIK musst Du explizit setzen es in die root:
Verzeichnis-Struktur:
Dann in
/other.js
Können Sie jetzt tun
require('mypackage/other')
Ich bin derzeit auf der Suche in der exakt gleichen Sache.
Package.json
hat eine Eigenschaft namens 'Dateien':http://blog.kewah.com/2014/npm-as-a-front-end-package-manager/
https://docs.npmjs.com/files/package.json
Aber ich habe noch zu finden, wie man einen import/benötigen für eine solche Datei.
Ich weiß nicht wirklich sehen ein weiterer Punkt in der Liste diese Dateien dann in der Lage sein, um
import/require
Sie?War ich in der Lage zu importieren einer Datei aus einem Paket, wenn es aufgeführt wurde, die in dieser Dateien-array.
Ich bin in der Lage, importieren Sie die css-Datei aus dem Paket mit postcss-import:
Dies ist wahrscheinlich nicht dein use-case, aber postcss-import nur verwendet npm unter der Haube. So sollte Diese Arbeit für deinen use-case, als auch, würde ich denken.
Diese Frage und akzeptierten Antworten scheinen im Zusammenhang:
Node/NPM: Kann man das npm-Paket setzen mehr als eine Datei?
Musst du explizit setzen Sie die Datei in den root-Ordner, aber viele Projekte (auch älteren Versionen von lodash) tun dies als Teil einer pre-Schritt veröffentlichen. In der Tat gibt es ein Paket, die macht genau das, was @Creynders schon sagt, hinzufügen
module.exports = require('./path/to/file')
Dateien in Ihr root-Ordner. Eine Weile zurück schrieb ich einen guide auf erste Schritte, aber das wesentliche ist ziemlich einfach.Installieren
npm install --save-dev generate-export-aliases
Konfigurieren
Verwenden
const other = require('my-package/other')
DISCLAIMER: ich bin der Autor des Pakets