electron-squirrel-startup
electron-squirrel-startup copied to clipboard
ESM example/usage
With ESM, the electron-squirrel-startup
dependency can't be found if it's in dependencies (it works if I move it into devDependencies):
-
require.resolve
(Node < 20.6.0) example;src/main.ts
file:import { createRequire } from 'node:module' import { fileURLToPath } from 'node:url' const require = createRequire(import.meta.url) const __dirname = path.dirname(fileURLToPath(import.meta.url)) try { // Handle creating/removing shortcuts on Windows when installing/uninstalling. require.resolve('electron-squirrel-startup/package.json') // OR require.resolve('electron-squirrel-startup/package.json', { paths: [__dirname] }) app.quit() } catch (error) { // Ignore console.log('Ignore error: ', error) }
Console output:
Ignore error: Error: Cannot find module 'electron-squirrel-startup/package.json' Require stack: - C:\template-electron-vite\.vite\build\main.js at Module._resolveFilename (node:internal/modules/cjs/loader:1152:15) at s._resolveFilename (node:electron/js2c/browser_init:2:120699) at Function.resolve (node:internal/modules/helpers:190:19) at file:///C:/template-electron-vite/.vite/build/main.js:8:12 at ModuleJob.run (node:internal/modules/esm/module_job:222:25) at async ModuleLoader.import (node:internal/modules/esm/loader:316:24) at async loadApplicationPackage (file:///C:/template-electron-vite/.yarn/unplugged/electron-npm-31.0.0-df97707901/node_modules/electron/dist/resources/default_app.asar/main.js:129:9) at async file:///C:/template-electron-vite/.yarn/unplugged/electron-npm-31.0.0-df97707901/node_modules/electron/dist/resources/default_app.asar/main.js:241:9 { code: 'MODULE_NOT_FOUND', requireStack: [ 'C:\\template-electron-vite\\.vite\\build\\main.js' ] }
-
import.meta.resolve
(Node.js >= 20.6.0) example;src/main.ts
file:try { // Handle creating/removing shortcuts on Windows when installing/uninstalling. import.meta.resolve('electron-squirrel-startup/package.json') app.quit() } catch (error) { // Ignore console.log('Ignore error: ', error) }
Console output:
Ignore error: Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'electron-squirrel-startup' imported from C:\template-electron-vite\.vite\build\main.js at packageResolve (node:internal/modules/esm/resolve:861:9) at moduleResolve (node:internal/modules/esm/resolve:934:18) at defaultResolve (node:internal/modules/esm/resolve:1164:11) at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:383:12) at ModuleLoader.resolveSync (node:internal/modules/esm/loader:365:17) at Object.resolve (node:internal/modules/esm/initialize_import_meta:30:25) at file:///C:/template-electron-vite/.vite/build/main.js:6:15 at ModuleJob.run (node:internal/modules/esm/module_job:222:25) at async ModuleLoader.import (node:internal/modules/esm/loader:316:24) at async loadApplicationPackage (file:///C:/template-electron-vite/.yarn/unplugged/electron-npm-31.0.0-df97707901/node_modules/electron/dist/resources/default_app.asar/main.js:129:9) { code: 'ERR_MODULE_NOT_FOUND' }
Note: an example for ESM use case should be added in README.md.