Ich baue eine App mit mehreren Sub-Apps. Die Dateistruktur ist wie folgt:Ein node_modul von oberhalb des aktuellen Verzeichnisses laden
├── app1
│ ├── app.js
│ ├── node_modules
│ └── package.json
├── shared
│ └── foo.js
In app.js
, ich lade foo.js
wie folgt aus:
require('../shared/foo');
Und in foo.js
ich versuche, ein npm
Modul zu verwenden, body-parser
, wie folgt aus:
var bodyParser = require('body-parser');
Dies ist ein "Kann Modulfehler nicht finden" - body-parser
ist in derinstalliertVerzeichnis, aber foo.js
sucht offensichtlich in einem eigenen Verzeichnis und findet es nicht.
Gibt es eine Möglichkeit, einen require()
Aufruf zu nennen, das Arbeitsverzeichnis der Datei zu verwenden, von der es aufgerufen wird, anstatt von seinem eigenen Verzeichnis? Oder muss ich eine zweite package.json
innerhalb /shared
haben, um dieses Verhalten zu ermöglichen?
In foo.js
ich meine require()
Anrufe geändert wie folgt aussehen: