Skip to content

dev模式下有概率会把cjs的格式编译成mjs #286

@WangZhongDian

Description

@WangZhongDian

vite

  plugins: [
    vue(),
    vueDevTools(),
    // electron插件
    electron([   // 把主进程一起打包
      {
        entry: 'electron/main.ts', onstart: (args) => {
          args.startup(['.', '-v'])
        }
      },
      // 预加载脚本
      {
        entry: 'electron/preload/preload.ts',
        onstart: ({ reload }) => reload(),
        vite: {
          build: {
            // sourcemap: 'inline',
            minify: true,
            outDir: 'dist-electron/preload',
            lib: {
              entry: 'electron/preload/preload.js',
              formats: ['cjs'],          // 强制 CommonJS
              fileName: () => `preload.js`
            },
            rollupOptions: {
              external: [
                'electron'
              ],
              output: {
                // 禁止把 __esModule 标记打进去,Electron 12+ 需要
                entryFileNames: '[name].js',
                format: 'cjs'
              }
            }
          }
        }
      }
    ]),

正确

"use strict";const e=require("electron"),n={async getAccessToken(){return await e.ipcRenderer.invoke("getAccessToken")}},t="tokenAPI",o={[t]:n};e.contextBridge.exposeInMainWorld("electronAPI",o);

有概率得到,导致加载错误

import { ipcRenderer as e, contextBridge as n } from "electron";
const o = {
  async getAccessToken() {
    return await e.invoke("getAccessToken");
  }
}, t = "tokenAPI", c = {
  [t]: o
};
n.exposeInMainWorld("electronAPI", c);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions