我正在使用node,create-react-app和electronic来开发桌面应用程序。下一行recommended here
const { dialog } = require('electron').remote
添加到我的store
反应成分中(因此不在电子主过程中)时,会导致以下错误:
TypeError: fs.existsSync is not a function
getElectronPath
F:/freelance/repos/creative-ontology-editor/node_modules/electron/index.js:8
5 | var pathFile = path.join(__dirname, 'path.txt');
6 |
7 | function getElectronPath() {
> 8 | if (fs.existsSync(pathFile)) {
9 | var executablePath = fs.readFileSync(pathFile, 'utf-8');
10 |
11 | if (process.env.ELECTRON_OVERRIDE_DIST_PATH) {
我相信这是因为React或create-react-app专门阻止/无效了诸如fs
之类的某些node.js模块,但是我可能是错的。请注意,当我在上面的行中(而不是在我自己的代码中)包含上述行时,此错误发生在electron
模块的内部中。
我的目标是使我的桌面应用程序能够像Word或Excel一样将文件保存并加载到用户的计算机上。
我在我的react组件中调用了const fs = window.require('fs');
,我认为我不应该这样做,但是,因为这是在实际的electron
模块的index.js
中,所以我确保它也调用它,它会这样做:var fs = require('fs')
。当我将react组件中的呼叫切换到const fs = window.require('fs')
时,行为没有变化。
在电子主过程中,我还确保将webPreferences.nodeIntegration
设置为true,无济于事。