一尘不染

如何在Electron.Atom \ WebPack应用程序中使用FS模块?

node.js

我需要使用FS模块(fs.writeFile)在文件中写入一些数据。我的堆栈是webpack +反应+还原+电子。

第一个问题是: 无法解析模块’fs’ 。我尝试使用

target: "node",
---
node: {
    global: true,
    fs: "empty",
}
---
resolve: {
    root: path.join(__dirname),
    fallback: path.join(__dirname, 'node_modules'),
    modulesDirectories: ['node_modules'],
    extensions: ['', '.json', '.js', '.jsx', '.scss', '.png', '.jpg', '.jpeg', '.gif']
},

经过几次尝试,问题得以解决( 节点:{fs:“ empty”}
)。但是,还有第二个问题:屏幕截图

//In method componentDidMount (React)
console.log('fs', fs);
console.log('typeOf', typeof fs.writeFile);

//By clicking on the button
console.log(fs);
console.log(typeof fs.writeFile);

您可以看到 fs 是空对象,并且方法writeFile no不存在。我试图更改webpack的配置。

const path = require('path');
const fs = require('fs');
const webpack = require("webpack");
console.log(fs);

在这种情况下, fs 不为空。

如何解决这个问题呢?有任何想法吗?


阅读 435

收藏
2020-07-07

共1个答案

一尘不染

问题解决了。

需要在电子应用程序中使用(在其中添加捆绑包):

var remote = require('electron').remote;
var electronFs = remote.require('fs');
var electronDialog = remote.dialog;
2020-07-07