簡體   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