2015-06-05 10 views
5

Mit Elektronen in Kombination mit Angular2, Typescript und Elektron Ich versuche herauszufinden, wie man ein Node-Modul-Paket verwendet, das über npm installiert ist. Das aktuelle Problem ist, dass ich den Speicherort des Moduls wie var module = require('./node_modules/xyz/lib/xyz.js') angeben muss. Aber dann findet das Elektron nicht die Abhängigkeiten von xyz, die innerhalb ./node_modules/xyz/node_modules/yyy liegen und klagt ./yyy.js kann nicht gefunden werden.Wie benutzt man node_modules in Electron

Die Elektronenstruktur app

dist 
├── angular2.dev.js 
├── config.js 
├── index.html 
├── main.js 
├── node_modules 
├── package.json 
└── app.js 
+0

Stellt sich heraus, dass ich npm verwendet, um Module zu installieren, aber ich JSPM mit Angular2 Module zu laden. Bei der Installation von Modulen mit 'jspm install npm: xyz' kann ich dann Module in der Art require benötigen ('xyz'). – Karl2011

+0

Ich denke, ich weiß, was das Problem ist, eine ähnliche Frage wurde gestellt und ich denke, [diese Antwort] (http://stackoverflow.com/a/32335874/2295964) könnte Ihnen helfen! –

Antwort

0

Das aktuelle Problem ist, dass ich die Position des Moduls wie var Modul angeben = erfordern (‘./ node_modules/xyz/lib/xyz.js'

)

Sie sollten in der Lage sein var module = require('xyz'); zu tun Wenn Sie es in dem relativen Pfad lokalisiert ./node_modules/ ...., die Sie erwähnt.

3

UPDATE:

Ein ähnliches question wurde gefragt und my answer würde höchstwahrscheinlich Sie hier helfen:

Wenn Sie den Pfad zu Ihrer App node_modules Verzeichnis unter App root die nicht anhängen NODE_PATH Variable wird es nicht funktionieren. Sie müssen also so etwas wie dies tun:

export NODE_PATH=/PATH/TO/APP/node_modules 
electron /PATH/TO/APP 

Wenn NODE_PATH Export sicherstellen, dass Sie einen absoluten Pfad zur Verfügung stellen.


Wenn Elektron kann nicht Module finden, wenn Sie require sie normalerweise, es ist ein Zeichen dafür, dass Ihre package.json die Module nicht als Abhängigkeit sogar enthält, wenn das Modul unter dem dist Verzeichnis bereits vorhanden ist.

So stellen Sie sicher, dass Sie in dist Verzeichnis sind und

npm install --save xyz 

Anmerkung der --save Flag verwenden!

1

Wenn Sie die Module nicht in Ihre package.json aufgenommen haben, fand ich es am einfachsten, sie alle in node_modules in Ihrer Version zu kopieren. Es ist etwas wie releases > ARCHITECTURE > resources > node_modules