如何在Electron中使用node_modules

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

电子应用程序结构

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

更新:

一个类似的问题已经被问及我的答案很可能会帮助你在这里:

如果您不将path添加到您的应用程序根目录下的应用程序node_modules目录到NODE_PATHvariables,则不会起作用。 所以你需要做这样的事情:

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

导出NODE_PATH ,请确保提供绝对path。


如果电子在正常require时候找不到模块,这就表明你的package.json不包含模块作为依赖, 即使模块已经在你的dist目录下可用。

所以确保你在dist目录里面并使用

 npm install --save xyz 

注意 – 保存标志!

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

你应该可以做var module = require('xyz'); 如果你有它的位置相对path./node_modules/ ....你提到的。

如果你没有在你的package.json中包含这些模块,我发现最简单的方法就是将它们全部复制到你的发行版的node_modules中。 这是像releases > ARCHITECTURE > resources > node_modules