Ich bin ziemlich neu in Knoten, und das ist wahrscheinlich ein ziemlich einfaches Problem.Wie exportiert man mehrere Module aus einem Paket?
Nehmen wir an, ich habe ein Paket mypackage
. Im package.json
meiner Paket habe ich die main
Schlüssel definiert:
...
"main": "./dist/index.js",
...
Im dist
Ordner gibt es ein weiteres Modul tools.js
Sobald mypackage
installiert ist, kann ich laufen Knoten auf den Ordner, und führen Sie das genannt ist folgende:
> require('mypackage')
Das funktioniert perfekt. Allerdings, wenn ich versuche, das tools
Modul zu importieren, ich laufe in diesen:
> require('mypackage/tools')
Error: Cannot find module 'mypackage/tools'
at Function.Module._resolveFilename (module.js:438:15)
at Function.Module._load (module.js:386:25)
at Module.require (module.js:466:17)
at require (internal/module.js:20:19)
at repl:1:1
at REPLServer.defaultEval (repl.js:272:27)
at bound (domain.js:280:14)
at REPLServer.runBound [as eval] (domain.js:293:12)
at REPLServer.<anonymous> (repl.js:441:10)
at emitOne (events.js:101:20)
Allerdings funktioniert es, wenn ich die dist
Ordner angeben:
> require('mypackage/dist/tools')
Aber das ist nicht das, was ich möchte meine Benutzer zu tun. Welcher Projektstruktur sollte ich folgen, wenn ich sowohl src
als auch dist
habe und möchte, dass Nicht-Hauptmodule mit mypackage/otherMod
erreichbar sind? Vielen Dank.
Der erste Ansatz bedeutet, dass das Importieren meines Pakets würde automatisch die PWD des Node-Prozesses ändern, was ich denke, es ist eine schlechte Idee. Der zweite würde funktionieren, aber 'tools' wären als Objekt in' index' verfügbar, und ich möchte, dass 'tools' als ein separates Modul verfügbar gemacht wird. – bgusach