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