繁体   English   中英

如何在 Electron 中使用 node_modules?

[英]How to use node_modules within Electron?

将电子与 Angular2、Typescript 和 Electron 结合使用,我试图找出如何使用通过 npm 安装的节点模块包。 当前的问题是我必须指定模块的位置,如var module = require('./node_modules/xyz/lib/xyz.js') 但是电子没有找到位于./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  

更新:

有人问过一个类似的问题我的回答很可能会在这里帮助你:

如果您不将应用程序根目录下的应用程序node_modules目录的路径附加到NODE_PATH变量,则它将无法工作。 所以你需要做这样的事情:

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

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


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

所以请确保您在dist目录中并使用

npm install --save xyz

注意--save标志!

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

你应该能够做到var module = require('xyz'); 如果您将它定位在您提到的相对路径./node_modules/ ....中。

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

根据电子文档,将 nodeIntegration 首选项设置为 true。 通过添加来做到这一点

webPreferences: {
  nodeIntegration: true
}

到您的createWindow()函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM