( клонировать репозиторий и попробовать его )
Я работаю над настольным приложением, используя node, create-реакции-app и электрон.Следующая строка, рекомендуемая здесь
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-Reaction-app специально блокируют / обнуляют определенные модули node.js, такие как fs
, но я могу ошибаться.Обратите внимание, что эта ошибка возникает внутри модуля electron
, когда я включаю вышеприведенную строку, а не в свой собственный код.
Моя цель состоит в том, чтобы мое настольное приложение могло сохранять и загружать файлына машине пользователя, как в Word или Excel.
Я назвал const fs = window.require('fs');
в моем компоненте реакции, что, я думаю, я не должен делать, но также, поскольку это вфактический electron
модуль index.js
, я убедился, что он также вызывает его, что он делает: var fs = require('fs')
.Не было никаких изменений в поведении, когда я переключил свой вызов в компоненте реагирования на const fs = window.require('fs')
.
Я также удостоверился, что для webPreferences.nodeIntegration
установлено значение true в моем основном электронном процессе, но безрезультатно.