如何在Electron中使用node_modules?

chr*_*ber 9 node.js typescript typescript1.5 electron angular

将电子与Angular2,Typescript和Electron结合使用我试着找出如何使用通过npm安装的节点模块包.目前的问题是我必须指定模块的位置var module = require('./node_modules/xyz/lib/xyz.js').但是电子没有找到xyz的依赖关系,它们位于其中./node_modules/xyz/node_modules/yyy并且./yyy.js无法找到抱怨.

电子app结构

dist  
??? angular2.dev.js   
??? config.js  
??? index.html  
??? main.js  
??? node_modules  
??? package.json  
??? app.js  
Run Code Online (Sandbox Code Playgroud)

Yan*_*oto 7

更新:

有人提出过类似的问题,我的回答很可能对你有所帮助:

如果您没有将应用node_modules程序根目录下的应用程序目录的路径附加到NODE_PATH变量,那么它将不起作用.所以你需要做这样的事情:

export NODE_PATH=/PATH/TO/APP/node_modules
electron /PATH/TO/APP
Run Code Online (Sandbox Code Playgroud)

导出时请NODE_PATH确保提供绝对路径.


如果电子在require正常情况下无法找到模块,则表明即使模块已在您的目录下可用,您package.json也不会将模块作为依赖项包含在内.dist

因此,请确保您在dist目录中并使用

npm install --save xyz
Run Code Online (Sandbox Code Playgroud)

注意--save国旗!


bas*_*rat 1

当前的问题是我必须指定模块的位置,例如 var module = require('./node_modules/xyz/lib/xyz.js')

var module = require('xyz');如果您将其位于您提到的相对路径中,您应该能够执行此操作./node_modules/ ....