🏬

electron-storeのES Moduleエラー解決(Electron v30以上)

2024/10/27に公開

前置き

electron-storeのサンプルを試すと

App threw an error during load
Error [ERR_REQUIRE_ESM]: require() of ES Module ...(以下略)

のエラーがでたときの対処をしたのでメモです。

electron-store
https://www.npmjs.com/package/electron-store

各バージョン

"electron": "^31.0.2"
"electron-store": "^10.0.0"
"electron-vite": "^2.3.0",

対処法

サンプルコードの

import Store from 'electron-store';

const store = new Store();

const load = async (): Promise<void> => {
	const { default: Store } = await import('electron-store')
	store = new Store()
}
load()

に変更します。

最終のコードは以下になります。

const load = async (): Promise<void> => {
	const { default: Store } = await import('electron-store')
	store = new Store()
}
load()

store.set('unicorn', '🦄');
console.log(store.get('unicorn'));
//=> '🦄'

// Use dot-notation to access nested properties
store.set('foo.bar', true);
console.log(store.get('foo'));
//=> {bar: true}

store.delete('unicorn');
console.log(store.get('unicorn'));
//=> undefined

あとがき

他に最適解があれば教えていただけると幸いです!

Discussion