我正在尝试构建一个电子桌面应用程序,但当我想使用nodejs的文件系统(fs)时,我得到了错误"未捕获的ReferenceError:要求未定义"。当我搜索这个问题时,我发现了一些提示,比如"删除"one_answers"键入";"module";从你的包裹里。Json或使用导入代替,但没有工作为我。一般来说,我不能使用任何模块,不仅仅是fs,而是main.js中的一切都很好。
const { app, BrowserWindow } = require('electron');
const path = require('path');
// Handle creating/removing shortcuts on Windows when installing/uninstalling.
if (require('electron-squirrel-startup')) { // eslint-disable-line global-require
app.quit();
}
const createWindow = () => {
// Create the browser window.
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
});
如你所见,require()只在那里起作用。当我想在我的index.html中使用它来读取文件时,它不起作用。
const { readFile } = require('fs');
readFile('./foo.txt', (err, source) => {
if (err) {
console.error(err);
} else {
console.log(source);
}
});
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Test</title>
<link rel="stylesheet" href="index.css" />
<script defer src="test.js"></script>
</head>
<body class="content">
</body>
</html>
我不是一个有经验的程序员,所以我希望我不会犯一个明显的错误,浪费你的时间,我期待着你的帮助。
function createAddItemWindow() {
// Create a new window
addItemWindown = new BrowserWindow({
width: 300,
height: 200,
title: 'Add Item',
// The lines below solved the issue
webPreferences: {
nodeIntegration: true
}
})}
解决方案是在这里提出的。