Electron + Vite。Nodeモジュールの使用に関する問題


Viteを使ってElectronのビルドを行う際(現在はpackage.jsonでの"type": "module"オプションがサポートされていません)、pathfsなどのNode.jsモジュールの使用に問題が生じることがあります。

エラーError: Module “path” has been externalized for browser compatibility. Cannot access “path.sep” in client codeが表示されることがあります。

しかし、これはvite-plugin-electron-rendererポリフィルをインストールする(npm i -D vite-plugin-electron-renderer)ことで、そしてvite.config.tsで以下のように宣言することで、簡単に修正できます:

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import renderer from 'vite-plugin-electron-renderer';

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    renderer(),
  ],
  base: './',
});

TAGS:

  • Electron
  • Vite
  • Node.js
  • TypeScript
  • フロントエンド
  • 開発
  • ウェブ開発
  • ビルドツール
  • トラブルシューティング