我正在构建一个Electron应用程序。 在开发过程中,我发现使用浏览器进行实现,调试和测试非常有效。 但是,当使用任何电子专用模块(remote.require,ipc等)时,webpack无法构建js。
处理此类案件的最佳做法是什么?
我有2个webpack配置,一个用于网络,一个用于电子,我指定目标=电子,工作正常 似乎是网络版(没有这个目标),投诉电子模块
下面是一个示例模块,其中我有条件地尝试要求电子,但webpack无论如何都试图将其包含在网络中
const isElectron = (function(){
return navigator.userAgent.indexOf("Electron") == -1;
})();
export default {
require: (module) => {
if(isElectron){
const electron = require("electron");
return electron.remote.require(module);
}
return require(module);
}
}
我甚至添加了
然而,当webpack运行时,我得到了
ERROR in ./~/electron/index.js
Module not found: Error: Cannot resolve module 'fs'
如果我移除电子需要消失
有这种情况的其他人吗?
此致
答案 0 :(得分:1)
AFAIK您无法从主要访问渲染器中的fs
。我解决这个问题的方法是在我的主进程中定义fs
并使用共享对象使其可访问:
// main
global.sharedObject = {
cwd: __dirname,
appDir: app.getPath('userData')
};
和
// renderer
console.log(electron.remote.getGlobal('sharedObject').cwd);
根据您的情况,您可能会例如:
electron-json-storage