Issue with node-7z only in packaged app [not really a bug, asking for help]
dowmeister opened this issue · comments
Francesco Bramato commented
Prerequisites
- Using npm
- Using an up-to-date
main
branch - Using latest version of devtools. Check the docs for how to update
- Tried solutions mentioned in #400
- For issue in production release, add devtools output of
DEBUG_PROD=true npm run build && npm start
Expected Behavior
I'm using node-7z
and 7zip-bin
to unzip .7z files
Current Behavior
Everything works fine in development mode but fire the error TypeError: je.createExtractorFromFile is not a function
in packaged app
Steps to Reproduce
./release/app/package.json
deps
"dependencies": {
"7zip-bin": "^5.2.0",
"node-7z": "^3.0.0"
},
./package.json
deps
"@fortawesome/fontawesome-svg-core": "^6.5.1",
"@fortawesome/free-brands-svg-icons": "^6.5.1",
"@fortawesome/free-regular-svg-icons": "^6.5.1",
"@fortawesome/free-solid-svg-icons": "^6.5.1",
"@fortawesome/react-fontawesome": "^0.2.0",
"axios": "^1.6.4",
"bootstrap": "5.2",
"electron-debug": "^3.2.0",
"electron-log": "^4.4.8",
"electron-request": "^1.8.3",
"electron-store": "^8.1.0",
"electron-updater": "^5.3.0",
"node-7z": "^3.0.0",
"node-fetch": "^3.3.2",
"node-fetch-progress": "^1.0.2",
"node-stream-zip": "^1.15.0",
"node-unrar-js": "^2.0.2",
"pretty-bytes": "^6.1.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-loading-overlay-ts": "^2.0.2",
"react-router-dom": "^6.11.2",
"react-toastify": "^9.1.3",
"reactstrap": "^9.2.1",
"underscore": "^1.13.6"
Relevant code from the main process:
import Seven from 'node-7z';
import sevenBin from '7zip-bin';
...
private async get7zFiles(download: DownloadEntry): Promise<string[]> {
return new Promise((resolve, reject) => {
const files: string[] = [];
const myStream = Seven.list(download.localFileName, { $bin: pathTo7zip });
myStream.on('data', function (data) {
files.push(data.file);
});
myStream.on('end', function () { resolve(files);
});
myStream.on('error', reject);
});
}
[2024-01-05 11:43:21.024] [info] TypeError: je.createExtractorFromFile is not a function
at Pe.checkIfNeedUnzip (C:\Users\Francesco\AppData\Local\Programs\trucky-modmanager\resources\app.asar\dist\main\webpack:\trucky-modmanager\src\core\services\DownloadsService.ts:348:39)
at Pe.finalizeDownload (C:\Users\Francesco\AppData\Local\Programs\trucky-modmanager\resources\app.asar\dist\main\webpack:\trucky-modmanager\src\core\services\DownloadsService.ts:271:34)
at M.<anonymous> (C:\Users\Francesco\AppData\Local\Programs\trucky-modmanager\resources\app.asar\dist\main\webpack:\trucky-modmanager\src\core\services\DownloadsService.ts:222:14)
at M.emit (node:events:525:35)
at IncomingMessage.<anonymous> (C:\Users\Francesco\AppData\Local\Programs\trucky-modmanager\resources\app.asar\dist\main\webpack:\trucky-modmanager\node_modules\request\request.js:1076:12)
at Object.onceWrapper (node:events:627:28)
at IncomingMessage.emit (node:events:525:35)
at endReadableNT (node:internal/streams/readable:1358:12)
at processTicksAndRejections (node:internal/process/task_queues:83:21)
-
Installed 7z-bin and, node-7z in ./release/app/package.json
-
Installed node-7z in root package.json
-
ran
npm run package
-
ran the installed app, tried to unzip
Possible Solution (Not obligatory)
Context
Your Environment
- Node version : 16
- electron-react-boilerplate version or branch :
- Operating System and version :
Windows 10 - Link to your project :