fs.existsSync不是函数node.js/electron app

use*_*902 5 node.js electron

我从电子/节点js app的依赖(电子边缘)得到错误.node.js版本是5.5.0,电子版本是0.36.7

Ben*_*ure 6

要完成 Mark Meyer 的回答:如果您将create-react-app与电子一起使用,则不能在不弹出 create-react-app 的情况下修改 webpack。这是使用@craco/craco的解决方案:

npm i --save @craco/craco
Run Code Online (Sandbox Code Playgroud)

在 package.json 脚本中用 craco 替换 create-react-app :

  "scripts": {
    "start": "craco start",
    "build": "craco build",
    "test": "craco test",
    "electron": "electron ."
  },
Run Code Online (Sandbox Code Playgroud)

将 craco.config.js 添加到根目录

module.exports = {
    webpack: {
        configure: {
            target: 'electron-renderer'
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

修改你的 main.js 文件:

mainWindow = new BrowserWindow(
  {
      width: 800,
      height: 600,
      webPreferences: {        // add
        nodeIntegration: true  // these
      }                        // lines
  });
Run Code Online (Sandbox Code Playgroud)

然后从你的 js 文件,例如打开文件对话框,使用 window.require :

const remote = window.require('electron').remote;
remote.dialog.showOpenDialog(remote.getCurrentWindow(), {properties:["openDirectory"]});
Run Code Online (Sandbox Code Playgroud)

有关完整故事,请参阅create-react-app问题