[英]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.