Comments (5)
Here is the output on macOS:
> [email protected] make
> electron-forge make
✔ Checking your system
✔ Resolving Forge Config
We need to package your application before we can make it
⠋ Preparing to Package Application for arch: x64
An unhandled rejection has occurred inside Forge:
Error: ENAMETOOLONG: name too long, scandir '/var/folders/5c/blzb_wsx2cvdglh72tkyn8800000gn/T/electron-packager/darwin-x64/Tracky Mouse-darwin-x64/Electron.app/Contents/Resources/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/tracky-mouse/app/node_modules/serenade-driver/build/Release/obj.target/serenade-driver'
Electron Forge was terminated. Location:
{}
It's actually not quite what I remembered. But I still suspect the same underlying cause.
from tracky-mouse.
I tried adding as a workaround in forge.config.js:
ignore: [
// This project, which is a subfolder of the main project,
// the main project (core library) being a dependency of this project
"tracky-mouse-electron",
but that didn't help.
Trying restructuring the repo next.
from tracky-mouse.
I restructured the project as a monorepo, and this does help, but using npm workspaces creates its own problems.
I'm now running up against:
With npm workspaces, dependencies are now hoisted by npm, and Electron Forge doesn't find the dependencies.
I tried adding an .npmrc
with:
# install-strategy is needed for the electron app to be packaged correctly.
# If the dependencies are hoisted, electron-forge will fail to find them.
install-strategy=linked
But this is buggy, as noted in the output:
2024-04-18 02:08:24 ⌚ in ~/Projects/tracky-mouse
± |main ↑3 {3} ?:1 ✗| → npm i
npm WARN reify The "linked" install strategy is EXPERIMENTAL and may contain bugs.
npm WARN deprecated [email protected]: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm WARN deprecated @npmcli/[email protected]: This functionality has been moved to @npmcli/fs
npm WARN deprecated [email protected]: The package has been renamed to `open`
npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated @electron-forge/[email protected]: The electron-forge install command was removed in the v6.0.0-beta.68 release.
npm WARN deprecated @electron-forge/[email protected]: The electron-forge install command was removed in the v6.0.0-beta.68 release.
npm WARN deprecated @electron-forge/[email protected]: The electron-forge install command was removed in the v6.0.0-beta.68 release.
npm WARN deprecated @electron-forge/[email protected]: The electron-forge install command was removed in the v6.0.0-beta.68 release.
npm WARN deprecated @electron-forge/[email protected]: The electron-forge install command was removed in the v6.0.0-beta.68 release.
npm WARN deprecated [email protected]: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated @electron-forge/[email protected]: The electron-forge install command was removed in the v6.0.0-beta.68 release.
npm WARN deprecated @electron-forge/[email protected]: The electron-forge install command was removed in the v6.0.0-beta.68 release.
npm WARN deprecated [email protected]: Please use @electron/asar moving forward. There is no API change, just a package name change
npm WARN deprecated @electron-forge/[email protected]: The electron-forge install command was removed in the v6.0.0-beta.68 release.
npm WARN deprecated [email protected]: Please use @electron/osx-sign moving forward. Be aware the API is slightly different
npm WARN deprecated [email protected]: Please use @electron/notarize moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/packager moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/rebuild moving forward. There is no API change, just a package name change
npm ERR! code 1
npm ERR! path C:\Users\Isaiah\Projects\tracky-mouse\node_modules\.store\[email protected]_NKL07TXUFDJP_AO9lS3A\node_modules\serenade-driver
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c node-gyp rebuild
npm ERR! driver.cpp
npm ERR! C:\Users\Isaiah\Projects\tracky-mouse\node_modules\.store\[email protected]_NKL07TXUFDJP_AO9lS3A\node_modules\serenade-driver\src\driver.cpp(1,1): error C1083: Cannot open compiler generated file: 'C:\Users\Isaiah\Projects\tracky-mouse\node_modules\.store\[email protected]_NKL07TXUFDJP_AO9lS3A\node_modules\serenade-driver\build\Release\obj\serenade-driver\src\driver.obj': Permission denied [C:\Users\Isaiah\Projects\tracky-mouse\node_modules\.store\[email protected]_NKL07TXUFDJP_AO9lS3A\node_modules\serenade-driver\build\serenade-driver.vcxproj]
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | win32 | x64
npm ERR! gyp info find Python using Python version 3.12.1 found at "C:\Users\Isaiah\AppData\Local\Programs\Python\Python312\python.exe"
npm ERR! gyp info find VS using VS2022 (17.9.34701.34) found at:
npm ERR! gyp info find VS "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools"
npm ERR! gyp info find VS run with --verbose for detailed information
npm ERR! gyp info spawn C:\Users\Isaiah\AppData\Local\Programs\Python\Python312\python.exe
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args 'C:\\Users\\Isaiah\\AppData\\Roaming\\nvm\\v21.5.0\\node_modules\\npm\\node_modules\\node-gyp\\gyp\\gyp_main.py',
npm ERR! gyp info spawn args 'binding.gyp',
npm ERR! gyp info spawn args '-f',
npm ERR! gyp info spawn args 'msvs',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args 'C:\\Users\\Isaiah\\Projects\\tracky-mouse\\node_modules\\.store\\[email protected]_NKL07TXUFDJP_AO9lS3A\\node_modules\\serenade-driver\\build\\config.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args 'C:\\Users\\Isaiah\\AppData\\Roaming\\nvm\\v21.5.0\\node_modules\\npm\\node_modules\\node-gyp\\addon.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args 'C:\\Users\\Isaiah\\AppData\\Local\\node-gyp\\Cache\\21.5.0\\include\\node\\common.gypi',
npm ERR! gyp info spawn args '-Dlibrary=shared_library',
npm ERR! gyp info spawn args '-Dvisibility=default',
npm ERR! gyp info spawn args '-Dnode_root_dir=C:\\Users\\Isaiah\\AppData\\Local\\node-gyp\\Cache\\21.5.0',
npm ERR! gyp info spawn args '-Dnode_gyp_dir=C:\\Users\\Isaiah\\AppData\\Roaming\\nvm\\v21.5.0\\node_modules\\npm\\node_modules\\node-gyp',
npm ERR! gyp info spawn args '-Dnode_lib_file=C:\\\\Users\\\\Isaiah\\\\AppData\\\\Local\\\\node-gyp\\\\Cache\\\\21.5.0\\\\<(target_arch)\\\\node.lib',
npm ERR! gyp info spawn args '-Dmodule_root_dir=C:\\Users\\Isaiah\\Projects\\tracky-mouse\\node_modules\\.store\\[email protected]_NKL07TXUFDJP_AO9lS3A\\node_modules\\serenade-driver',
npm ERR! gyp info spawn args '-Dnode_engine=v8',
npm ERR! gyp info spawn args '--depth=.',
npm ERR! gyp info spawn args '--no-parallel',
npm ERR! gyp info spawn args '--generator-output',
npm ERR! gyp info spawn args 'C:\\Users\\Isaiah\\Projects\\tracky-mouse\\node_modules\\.store\\[email protected]_NKL07TXUFDJP_AO9lS3A\\node_modules\\serenade-driver\\build',
npm ERR! gyp info spawn args '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp info spawn C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args 'build\\binding.sln',
npm ERR! gyp info spawn args '/clp:Verbosity=minimal',
npm ERR! gyp info spawn args '/nologo',
npm ERR! gyp info spawn args '/p:Configuration=Release;Platform=x64'
npm ERR! gyp info spawn args ]
npm ERR! gyp ERR! build error
npm ERR! gyp ERR! stack Error: `C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe` failed with exit code: 1
npm ERR! gyp ERR! stack at ChildProcess.<anonymous> (C:\Users\Isaiah\AppData\Roaming\nvm\v21.5.0\node_modules\npm\node_modules\node-gyp\lib\build.js:209:23)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:519:28)
npm ERR! gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:294:12)
npm ERR! gyp ERR! System Windows_NT 10.0.22631
npm ERR! gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\Isaiah\\AppData\\Roaming\\nvm\\v21.5.0\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd C:\Users\Isaiah\Projects\tracky-mouse\node_modules\.store\[email protected]_NKL07TXUFDJP_AO9lS3A\node_modules\serenade-driver
npm ERR! gyp ERR! node -v v21.5.0
npm ERR! gyp ERR! node-gyp -v v10.0.1
npm ERR! gyp ERR! not ok
npm ERR! A complete log of this run can be found in: C:\Users\Isaiah\AppData\Local\npm-cache\_logs\2024-04-18T06_10_19_850Z-debug-0.log
2024-04-18 02:10:29 ⌚ in ~/Projects/tracky-mouse
± |main ↑3 {3} ?:1 ✗| → cd website/
2024-04-18 02:11:47 ⌚ in ~/Projects/tracky-mouse/website
± |main ↑3 {3} ?:1 ✗| → npm i
npm WARN reify The "linked" install strategy is EXPERIMENTAL and may contain bugs.
npm ERR! this.idealTree.children.get is not a function
npm ERR! A complete log of this run can be found in: C:\Users\Isaiah\AppData\Local\npm-cache\_logs\2024-04-18T06_11_49_837Z-debug-0.log
2024-04-18 02:11:50 ⌚ in ~/Projects/tracky-mouse/website
± |main ↑3 {3} ?:1 ✗| → cd ../desktop-app/
2024-04-18 02:15:24 ⌚ in ~/Projects/tracky-mouse/desktop-app
± |main ↑3 {3} ?:1 ✗| → npm i
npm WARN reify The "linked" install strategy is EXPERIMENTAL and may contain bugs.
npm ERR! this.idealTree.children.get is not a function
npm ERR! A complete log of this run can be found in: C:\Users\Isaiah\AppData\Local\npm-cache\_logs\2024-04-18T06_15_26_005Z-debug-0.log
I may need to ditch npm workspaces, and just use separate packages that aren't "workspaces", in order to have separate node_modules
.
Or I may be able to delete the package locks other than the root one, and build the app if Electron Forge actually supports looking at one package.json but not nested ones, and that's the only issue, but this will have the downside of requiring installing heavy dependencies including native modules just to hack on the website, which is inefficient and may be prohibitive to contributors.
I could also try the install-strategy=nested
(formerly --legacy-bundling
), which may be inefficient but perhaps not on the order of having to install electron plus a native node module when not needed.
from tracky-mouse.
I tried adding install-strategy=nested
to .npmrc
and deleting all the package-lock.json
files and reinstalling, but it was very broken, showing leftovers from install-strategy=linked
(note the .store
):
"desktop-app/node_modules/serenade-driver": {
"resolved": "node_modules/.store/[email protected]_NKL07TXUFDJP_AO9lS3A/node_modules/serenade-driver",
"link": true
},
"node_modules/.store/[email protected]_NKL07TXUFDJP_AO9lS3A": {},
"node_modules/.store/[email protected]_NKL07TXUFDJP_AO9lS3A/node_modules/serenade-driver": {
"version": "1.1.13",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
"bindings": "^1.5.0",
"node-addon-api": "^3.1.0",
"windows-shortcuts": "^0.1.6"
}
},
"node_modules/.store/[email protected]_NKL07TXUFDJP_AO9lS3A/node_modules/serenade-driver/node_modules/bindings": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
"dependencies": {
"file-uri-to-path": "1.0.0"
}
},
"node_modules/.store/[email protected]_NKL07TXUFDJP_AO9lS3A/node_modules/serenade-driver/node_modules/node-addon-api": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz",
"integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A=="
},
"node_modules/.store/[email protected]_NKL07TXUFDJP_AO9lS3A/node_modules/serenade-driver/node_modules/windows-shortcuts": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/windows-shortcuts/-/windows-shortcuts-0.1.6.tgz",
"integrity": "sha512-kjkb3Hmmmg7jwnOb+29AOmoEEA1L/JeLsMOYovpLxYpuc+fN0R+pr8sMwep3JFhUZloxyw1XTzq8n3HugXkqBA=="
},
and running npm i
inside desktop-app/
didn't do anything.
Then I tried deleting all the package locks again along with the node_modules
folders and trying again...
2024-04-18 11:51:36 ⌚ in ~/Projects/tracky-mouse
± |main ↑4 {3} ✓| → npm i
npm WARN deprecated [email protected]: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm WARN deprecated @npmcli/[email protected]: This functionality has been moved to @npmcli/fs
npm WARN deprecated @npmcli/[email protected]: This functionality has been moved to @npmcli/fs
npm WARN deprecated @npmcli/[email protected]: This functionality has been moved to @npmcli/fs
npm WARN deprecated @npmcli/[email protected]: This functionality has been moved to @npmcli/fs
npm WARN deprecated @npmcli/[email protected]: This functionality has been moved to @npmcli/fs
npm WARN deprecated @npmcli/[email protected]: This functionality has been moved to @npmcli/fs
npm WARN deprecated @npmcli/[email protected]: This functionality has been moved to @npmcli/fs
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated [email protected]: The package has been renamed to `open`
npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated @electron-forge/[email protected]: The electron-forge install command was removed in the v6.0.0-beta.68 release.
npm WARN deprecated @electron-forge/[email protected]: The electron-forge install command was removed in the v6.0.0-beta.68 release.
npm WARN deprecated @electron-forge/[email protected]: The electron-forge install command was removed in the v6.0.0-beta.68 release.
npm WARN deprecated @electron-forge/[email protected]: The electron-forge install command was removed in the v6.0.0-beta.68 release.
npm WARN deprecated @electron-forge/[email protected]: The electron-forge install command was removed in the v6.0.0-beta.68 release.
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated [email protected]: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated @electron-forge/[email protected]: The electron-forge install command was removed in the v6.0.0-beta.68 release.
npm WARN deprecated @electron-forge/[email protected]: The electron-forge install command was removed in the v6.0.0-beta.68 release.
npm WARN deprecated @electron-forge/[email protected]: The electron-forge install command was removed in the v6.0.0-beta.68 release.
npm WARN deprecated @electron-forge/[email protected]: The electron-forge install command was removed in the v6.0.0-beta.68 release.
npm WARN deprecated [email protected]: Please use @electron/asar moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/asar moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/asar moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/asar moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/asar moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/asar moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/asar moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/asar moving forward. There is no API change, just a package name change
npm WARN deprecated @electron-forge/[email protected]: The electron-forge install command was removed in the v6.0.0-beta.68 release.
npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: Please use @electron/osx-sign moving forward. Be aware the API is slightly different
npm WARN deprecated [email protected]: Please use @electron/osx-sign moving forward. Be aware the API is slightly different
npm WARN deprecated [email protected]: Please use @electron/osx-sign moving forward. Be aware the API is slightly different
npm WARN deprecated [email protected]: Please use @electron/osx-sign moving forward. Be aware the API is slightly different
npm WARN deprecated [email protected]: Please use @electron/osx-sign moving forward. Be aware the API is slightly different
npm WARN deprecated [email protected]: Please use @electron/osx-sign moving forward. Be aware the API is slightly different
npm WARN deprecated [email protected]: Please use @electron/notarize moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/notarize moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/notarize moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/notarize moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/notarize moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/notarize moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/packager moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/packager moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/packager moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/packager moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/packager moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/packager moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/rebuild moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/rebuild moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/rebuild moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/rebuild moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/rebuild moving forward. There is no API change, just a package name change
npm WARN deprecated [email protected]: Please use @electron/rebuild moving forward. There is no API change, just a package name change
npm WARN cleanup Failed to remove some directories [
npm WARN cleanup [
npm WARN cleanup 'C:\\Users\\Isaiah\\Projects\\tracky-mouse\\desktop-app\\node_modules\\@electron-forge\\maker-deb\\node_modules\\electron-installer-debian\\node_modules\\electron-installer-common',
npm WARN cleanup [Error: EPERM: operation not permitted, rmdir 'C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\maker-deb\node_modules\electron-installer-debian\node_modules\electron-installer-common\node_modules\asar\node_modules\@types\glob\node_modules'] {
npm WARN cleanup errno: -4048,
npm WARN cleanup code: 'EPERM',
npm WARN cleanup syscall: 'rmdir',
npm WARN cleanup path: 'C:\\Users\\Isaiah\\Projects\\tracky-mouse\\desktop-app\\node_modules\\@electron-forge\\maker-deb\\node_modules\\electron-installer-debian\\node_modules\\electron-installer-common\\node_modules\\asar\\node_modules\\@types\\glob\\node_modules'
npm WARN cleanup }
npm WARN cleanup ]
npm WARN cleanup ]
added 4469 packages, and audited 4473 packages in 53s
110 packages are looking for funding
run `npm fund` for details
23 vulnerabilities (16 moderate, 7 high)
To address issues that do not require attention, run:
npm audit fix
To address all issues possible (including breaking changes), run:
npm audit fix --force
Some issues need review, and may require choosing
a different dependency.
Run `npm audit` for details.
Weird that's trying to remove a directory during a clean install, but I've been having these sort of permission errors come and go for a while now.
Trying to run the app...
2024-04-18 11:53:26 ⌚ in ~/Projects/tracky-mouse
± |main ↑4 {3} U:1 ✗| → npm start -w desktop-app/
> [email protected] start
> electron-forge start
An unhandled exception has occurred inside Forge:
Cannot find module 'ini'
Require stack:
- C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\cli\node_modules\@electron-forge\core\node_modules\resolve-package\node_modules\get-installed-path\node_modules\global-modules\node_modules\global-prefix\index.js
- C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\cli\node_modules\@electron-forge\core\node_modules\resolve-package\node_modules\get-installed-path\node_modules\global-modules\index.js
- C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\cli\node_modules\@electron-forge\core\node_modules\resolve-package\node_modules\get-installed-path\index.js
- C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\cli\node_modules\@electron-forge\core\node_modules\resolve-package\index.js
- C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\cli\node_modules\@electron-forge\core\dist\api\init-scripts\find-template.js
- C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\cli\node_modules\@electron-forge\core\dist\api\init.js
- C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\cli\node_modules\@electron-forge\core\dist\api\index.js
- C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\cli\dist\util\check-system.js
- C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\cli\dist\electron-forge.js
Error: Cannot find module 'ini'
Require stack:
- C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\cli\node_modules\@electron-forge\core\node_modules\resolve-package\node_modules\get-installed-path\node_modules\global-modules\node_modules\global-prefix\index.js
- C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\cli\node_modules\@electron-forge\core\node_modules\resolve-package\node_modules\get-installed-path\node_modules\global-modules\index.js
- C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\cli\node_modules\@electron-forge\core\node_modules\resolve-package\node_modules\get-installed-path\index.js
- C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\cli\node_modules\@electron-forge\core\node_modules\resolve-package\index.js
- C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\cli\node_modules\@electron-forge\core\dist\api\init-scripts\find-template.js
- C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\cli\node_modules\@electron-forge\core\dist\api\init.js
- C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\cli\node_modules\@electron-forge\core\dist\api\index.js
- C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\cli\dist\util\check-system.js
- C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\cli\dist\electron-forge.js
at Module._resolveFilename (node:internal/modules/cjs/loader:1143:15)
at Module._load (node:internal/modules/cjs/loader:984:27)
at Module.require (node:internal/modules/cjs/loader:1234:19)
at require (node:internal/modules/helpers:176:18)
at Object.<anonymous> (C:\Users\Isaiah\Projects\tracky-mouse\desktop-app\node_modules\@electron-forge\cli\node_modules\@electron-forge\core\node_modules\resolve-package\node_modules\get-installed-path\node_modules\global-modules\node_modules\global-prefix\index.js:14:11)
at Module._compile (node:internal/modules/cjs/loader:1375:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1434:10)
at Module.load (node:internal/modules/cjs/loader:1206:32)
at Module._load (node:internal/modules/cjs/loader:1022:12)
at Module.require (node:internal/modules/cjs/loader:1234:19)
npm ERR! Lifecycle script `start` failed with error:
npm ERR! Error: command failed
npm ERR! in workspace: [email protected]
npm ERR! at location: C:\Users\Isaiah\Projects\tracky-mouse\desktop-app
I then tried using the default hoisted
install strategy, but deleting the package-lock.json
files other than the root one, following this advice, but:
- this requires reaching outside of the app directory to reference library code, and since I'm not using a bundler, this is not dynamic and is very unlikely to ever work when packaging the app:
<script src="../../node_modules/tracky-mouse/tracky-mouse.js"></script>
- it fails to even load modules in
electron-main.js
withrequire
, so Electron Forge is not bundling them. - (this would have the downside of requiring installing heavy dependencies including native modules just to hack on the website, which would be inefficient and possibly prohibitive to contributors)
So I'm going to have to ditch npm workspaces, and maybe switch package managers in the future to get a nicer monorepo workflow... that actually works.
from tracky-mouse.
Ditched npm workspaces and got the app building.
In the end I needed:
- The core library to be a sibling of the electron app, not a parent directory. This implies a monorepo setup.
- Not to use npm workspaces, since otherwise modules are hosted to a root
node_modules
for sharing, and Electron Forge doesn't handle this.
I replaced the--workspace
arguments with some npm scripts to maintain the ergonomics of running everything from one folder, which I would have missed.
I could explore other options in the future for improving the developer experience around the monorepo setup, like:
- alternative package managers like yarn or pnpm (although they may also have issues with Electron Forge)
- monorepo-specific tools like lerna, nx, etc.
- bundling tools like webpack, rollup, etc.
- or just tweaking npm scripts
from tracky-mouse.
Related Issues (20)
- Trigger click with vocal gestures (pop, ssss, whistle)
- Facemesh results don't correspond to the current camera frame due to latency
- Detect on-screen buttons and controls
- Dwell clicking shouldn't start until head is detected
- Shouldn't show red box when canceling dwell by turning off the dwell clicker
- Add a timer to revert changes if not accepted
- Manual mouse movement detection false positives HOT 3
- Automatically calibrate cursor position to match head tilt (Bonus: generalizes head tilt mode) HOT 1
- Head tracking circularity: balance diagonal movement with horizontal/vertical movement
- "Tracky Mouse Screen Overlay" window visible in taskbar after restarting Windows Explorer HOT 1
- Electron packaging (start creating desktop app releases) HOT 1
- Minimum face size (maximum distance) setting HOT 1
- Nice website/demo HOT 2
- Action binding system and profiles
- Broken layout of camera view area in web demo HOT 3
- Lag when scrolled over section with background on website HOT 1
- Deactivate camera after a period of inactivity, for performance
- Start/Stop button says "Stop" while camera isn't allowed
- Set up debugging renderer process(es) with VS Code
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tracky-mouse.