Node.js fs.existsSync不是功能节点。js/electron应用程序
我从electron/node js应用程序的依赖项(electron edge)中获取错误。node.js版本为5.5.0,electron版本为0.36.7,以完成Mark Meyer的回答:如果您与electron一起使用,则在不弹出create react应用程序的情况下无法修改网页包。以下是一个使用以下方法的解决方案: 在package.json脚本中用craco替换create react app:Node.js fs.existsSync不是功能节点。js/electron应用程序,node.js,electron,Node.js,Electron,我从electron/node js应用程序的依赖项(electron edge)中获取错误。node.js版本为5.5.0,electron版本为0.36.7,以完成Mark Meyer的回答:如果您与electron一起使用,则在不弹出create react应用程序的情况下无法修改网页包。以下是一个使用以下方法的解决方案: 在package.json脚本中用craco替换create react app: "scripts": { "start": "craco start",
"scripts": {
"start": "craco start",
"build": "craco build",
"test": "craco test",
"electron": "electron ."
},
将craco.config.js添加到根目录
module.exports = {
webpack: {
configure: {
target: 'electron-renderer'
}
}
};
修改main.js文件:
mainWindow = new BrowserWindow(
{
width: 800,
height: 600,
webPreferences: { // add
nodeIntegration: true // these
} // lines
});
然后从您的js文件,打开文件对话框,例如,使用window.require:
const remote = window.require('electron').remote;
remote.dialog.showOpenDialog(remote.getCurrentWindow(), {properties:["openDirectory"]});
有关完整故事,请参阅本期我猜您正在使用捆绑程序来编写代码。在这种情况下,问题就出现了,因为您没有绑定正确的目标集 在webpack中,将目标:“electron renderer”包含到
webpack.config.js
中
通过命令行选项
--target electron
(parcel build yourfile.html--target electron
)将正确的目标放在包裹捆绑包中。fs.existsSync()
已被弃用。请参阅以获取替代方案。因此,我想我必须等待electron edge模块的更新。我将其降级为node.js v0.12.10,因为在此版本中,existsSync方法没有被弃用,但我得到了相同的错误。由于我以前没有使用node.js和electron的经验,可能我在这里遗漏了一些关于node.js设置及其API的基本内容。您能解释更多有关错误的信息吗?确切的错误消息是什么?在什么情况下会出现错误(例如,出现错误时您在做什么)?我发现它与我用于捆绑的browserify组件有关。我知道不需要捆绑,因为electron能够动态加载模块,但与此同时,我正在使用react/flex框架,并使用捆绑步骤来传输jsx源。结论是节点版本没有问题。我正在寻找一个更好的构建模型来在我的应用程序中传输jsx。这是我在整个互联网上一直在寻找的解决方案。我想知道为什么这个答案没有得到选票。我正在使用CreateReact应用程序开发一个简单的应用程序,并使用electron将其发布到windows。我有一些api调用需要使用NTLM身份验证。很久以来我一直面临着这个奇怪的问题。我知道弹出CRA并对其进行一些更改是解决方案,但我不想在我的开发环境中拆分整个react设置。这些简单的说明和craco软件包发挥了神奇的作用!我真的很感谢你!您可能希望使用contextBridge
而不是nodeIntegration:true
,请参阅
const remote = window.require('electron').remote;
remote.dialog.showOpenDialog(remote.getCurrentWindow(), {properties:["openDirectory"]});