Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js fs.existsSync不是功能节点。js/electron应用程序_Node.js_Electron - Fatal编程技术网

Node.js fs.existsSync不是功能节点。js/electron应用程序

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",

我从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",
    "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"]});