首页 > 解决方案 > 允许电子 `requires` 在 Vite 中原封不动地通过

问题描述

尝试使用custom-electron-titlebar时,尝试访问时出现错误path。我已经添加

build: { rollupOptions: { external: ["electron", ...builtinModules],   }}

到我的 vite 配置,这似乎允许我require('path')在自己的代码中很好,但是当里面的导入代码custom-electron-titlebar尝试做同样的事情时,它无法工作。它似乎是一个包装/代理对象,如果我直接调用它,我会收到错误。

Module "path" has been externalized for browser compatibility and cannot be accessed in client code.

有没有办法让这些要求也通过?

标签: javascriptelectronvite

解决方案


正如vitejs/vite#2985中提到的,插件vite-plugin-commonjs-externals可以为我们解决这个问题。在 vite.config.js 中:

import commonjsExternals from 'vite-plugin-commonjs-externals';
export default {
  plugins: commonjsExternals({
    externals: ['path'],
  }),
};

推荐阅读