forge
forge copied to clipboard
[Windows] Strings with path parts replaced with undefined
Pre-flight checklist
- [X] I have read the contribution documentation for this project.
- [X] I agree to follow the code of conduct that this project uses.
- [X] I have searched the issue tracker for a bug that matches the one I want to file, without success.
Electron Forge version
6.0.0-beta.63
Electron version
19.0.1
Operating system
Windows 11 21H2
Last known working Electron Forge version
Unknown
Expected behavior
Strings with paths in them would not be replaced with undefined. That way, files could be read from the disk and used in the app.
Actual behavior
If a string does contain a path part that points to a file, the entire path aside from the filename is replaced with undefined. This is normally accomplished through things like __dirname, but the following example shows the behavior with an explicitly-defined string:
var path = 'C:\\Users\\example-user\\web\\example-project\\src\\some-path\\some-file.txt';
console.log(path);
// => "undefinedsome-file.txt"
I narrowed it down to the webpack-asset-relocator-loader plugin. Commenting out this plugin resolves the issue. However, I'm not sure the ramifications of this. Running the app locally and making a build seems to work...but maybe I'll run into issues later.
Steps to reproduce
- Create a new project using the Webpack template:
npx create-electron-app my-new-app --template=webpack
-
Create an empty file at
./src/example/index.html -
Add this snippet to
main.js:
const PROJECT_ROOT = process.cwd();
const ASSETS_PATH = path.join(PROJECT_ROOT, 'src', 'example');
const appFilePath = path.join(ASSETS_PATH, 'index.html');
console.log('appFilePath', appFilePath);
- Observe that the logged path is
appFilePath undefinedindex.html.
Note: the path must point to a file that actually exists for the bug to present itself.
Additional information
No response
I have the same issue. I can't use sqlite3 in preload.ts due to this bug. The interesting thing — on first run (with yarn start) it works ok but only breaks on fast refresh. Upgrading webpack-asset-relocator-loader to 1.7.2 didn't fix an issue
I also tried https://github.com/electron-userland/electron-forge/issues/575#issuecomment-422877001 (I added sqlite3 to external dep) and https://github.com/vercel/webpack-asset-relocator-loader/issues/161 seems to be related, but it didn't help
Here is the error on HMR happens (I am on macOS btw):
I think that’s a different problem. Maybe try some of the ideas over in https://github.com/electron-userland/electron-forge/issues/2412
@jamesplease oh you are right! Thanks