javascript - 允许电子 `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.
有没有办法让这些要求也通过?
解决方案
正如vitejs/vite#2985中提到的,插件vite-plugin-commonjs-externals可以为我们解决这个问题。在 vite.config.js 中:
import commonjsExternals from 'vite-plugin-commonjs-externals';
export default {
plugins: commonjsExternals({
externals: ['path'],
}),
};
推荐阅读
- python - Libreoffice-calc:从 shell cmd 行创建一个新工作表
- javascript - 需要将 socket.io 类更改为单例
- cookies - 是否可以使用 Tamper/Greasemonkey 交换用户 cookie/配置文件?
- c++ - 如何使用 c++ 在 Windows 系统中检测是否安装了 IIS 并注册了 ASP/ASP.NET?
- multithreading - cv2.imshow() 在线程中调用时启动时不弹出窗口
- java - 在 Quartz JobListener 实现中使用 spring bean
- css - 图像悬停和变换问题
- sql-server - ASP.NET Core 3.0 - 无法更新数据库
- ruby-on-rails - 使用 Sprockets 4 访问已编译的资产
- css - CSS 网格内容未正确换行