Требуется не определено, при использовании электрона, как это исправить? (уже пробовал нинтинтеграцию) - PullRequest
0 голосов
/ 30 января 2020

поэтому я использую электрон для создания приложения. Мне нужно использовать "fs", но так как я не могу этого потребовать, потому что require не работает в электронном формате, я застрял.

Я уже пробовал настройки "nodeItegration: true", но он все равно победил не работает, также я пытался использовать сценарий предварительной загрузки, но он все еще не работает. Может быть, я что-то не так сделал со скриптом предварительной загрузки?

Код ниже.

main. js

const electron = require("electron");
const url = require("url");
const path = require("path");

const {app, BrowserWindow} = electron;

let MainWindow;

app.on("ready", function(){

MainWindow = new BrowserWindow({
    webPreferences: {
        nodeIntergration: true,
        preload: path.join(app.getAppPath(), 'preload.js')
    }
});
MainWindow.loadURL(url.format({
    pathname: path.join(__dirname, "index.html"),
    protocol:"file:",
    slashes: true
}));

});

console.log(require.resolve('electron'))

index. html

    <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CommendBot UI</title>
<link rel="stylesheet" href="style.css">
</head>
<body>

<div class="container">

    <button class="safeData-button" onclick="safeData()">Safe</button>

  </div>

</div>

<script>
  // You can also require other files to run in this process

</script>
<script src="main.js"></script>
<script src="preload.js"></script>
</body>
</html>

preload. js

    function safeData() {
    var fs = require("fs");
    var sampleObject = {
        .......(some JSON data)
    }


        fs.writeFile("./object.json", JSON.stringify(sampleObject, null, 4), (err) => {
            if (err) {
                console.error(err);
                return;
            };
            console.log("File has been created");
        });
}   

Так что в принципе не работает, так это мой вызов функции из моей кнопки "Safe", которая вызывает функцию для fs.writeFile и пишет JSON file.

Прошу прощения за размещение всего кода, но не уверен, будет ли он более полезным или нет.

Заранее спасибо за ответы!

1 Ответ

2 голосов
/ 30 января 2020

Проблема, скорее всего, заключается в простой опечатке:

MainWindow = new BrowserWindow({
    webPreferences: {
        nodeIntegration: true, // Note spelling!
        preload: path.join(app.getAppPath(), 'preload.js')
    }
});
...