Не работает FS в electron forge + webpack + react
Создал чистый проект electron forge с webpack, есть необходимость использовать FS, но electron forge ругается выдавая такие ошибки:
app.jsx?93bc:9 Uncaught TypeError: fs__WEBPACK_IMPORTED_MODULE_2__.readdir is not a function
at onClick (app.jsx?93bc:9:5)
at HTMLUnknownElement.callCallback (react-dom.development.js?7574:730:114)
at Object.invokeGuardedCallbackDev (react-dom.development.js?7574:750:36)
at invokeGuardedCallback (react-dom.development.js?7574:771:98)
at invokeGuardedCallbackAndCatchFirstError (react-dom.development.js?7574:780:84)
at executeDispatch (react-dom.development.js?7574:1672:237)
at processDispatchQueueItemsInOrder (react-dom.development.js?7574:1672:1124)
at processDispatchQueue (react-dom.development.js?7574:1672:1467)
at dispatchEventsForPlugins (react-dom.development.js?7574:1674:300)
at eval (react-dom.development.js?7574:1712:316)
вот мой package.json
{
"name": "electron-forge-webpack",
"productName": "electron-forge-webpack",
"version": "1.0.0",
"description": "My Electron application description",
"main": ".webpack/main",
"scripts": {
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make",
"publish": "electron-forge publish",
"lint": "echo \"No linting configured\""
},
"keywords": [],
"author": "nixoko",
"license": "MIT",
"config": {
"forge": {
"packagerConfig": {},
"makers": [
{
"name": "@electron-forge/maker-squirrel",
"config": {
"name": "electron_forge_webpack"
}
},
{
"name": "@electron-forge/maker-zip",
"platforms": [
"darwin"
]
},
{
"name": "@electron-forge/maker-deb",
"config": {}
},
{
"name": "@electron-forge/maker-rpm",
"config": {}
}
],
"plugins": [
[
"@electron-forge/plugin-webpack",
{
"mainConfig": "./webpack.main.config.js",
"renderer": {
"config": "./webpack.renderer.config.js",
"entryPoints": [
{
"html": "./src/index.html",
"js": "./src/renderer.js",
"name": "main_window",
"preload": {
"js": "./src/preload.js"
}
}
]
}
}
]
]
}
},
"devDependencies": {
"@babel/core": "^7.18.13",
"@babel/preset-react": "^7.18.6",
"@electron-forge/cli": "^6.0.0-beta.65",
"@electron-forge/maker-deb": "^6.0.0-beta.65",
"@electron-forge/maker-rpm": "^6.0.0-beta.65",
"@electron-forge/maker-squirrel": "^6.0.0-beta.65",
"@electron-forge/maker-zip": "^6.0.0-beta.65",
"@electron-forge/plugin-webpack": "6.0.0-beta.65",
"@vercel/webpack-asset-relocator-loader": "1.7.3",
"babel-loader": "^8.2.5",
"css-loader": "^6.0.0",
"electron": "20.1.0",
"node-loader": "^2.0.0",
"style-loader": "^3.0.0"
},
"dependencies": {
"electron-squirrel-startup": "^1.0.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "6"
},
"browser": {
"fs": false,
"path": false,
"os": false,
"crypto": false,
"stream": false,
"http": false,
"tls": false,
"zlib": false,
"https": false,
"net": false
}
}
webpack.config
module.exports = {
entry: './src/main.js',
module: {
rules: require('./webpack.rules'),
}
};
и сама страница
import * as React from 'react';
import * as ReactDOM from 'react-dom/client';
import * as fs from 'fs';
function App(){
function onClick(){
fs.readdir('./', (err, data) => {
console.log(data);
})
}
return(
<div>
<button onClick={onClick}></button>
</div>
);
}
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
)