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

时间:2016-02-28 10:17:46

标签: node.js electron

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

2 个答案:

答案 0 :(得分:0)

要完成Mark Meyer的回答,请执行以下操作:如果您将create-react-app与电子结合使用,则必须先弹出create-react-app才能修改webpack。这是使用@craco/craco的解决方案:

npm i --save @craco/craco

在您的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"]});

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

答案 1 :(得分:0)

我猜您正在为代码使用捆绑器。在这种情况下,会出现问题,因为您没有捆绑正确的目标集。

在webpack中,将target: 'electron-renderer'放入您的webpack.config.js

通过命令行选项--target electronparcel build yourfile.html --target electron)在具有正确目标的包裹包中。