electron-vite 使用 better-sqlite 遇到的坑

1.vite 使用 c/c++ 模块

以下是官方的原话


“ Node.js 的 C/C++ 扩展有个很显著的特点,它只支持构建成为 CommonJS 格式的模块,并且使用 require() 加载它。这对强依赖 ESModule 格式的构建工具像 Vite、Rollup 十分的致命。

虽然有 @rollup/plugin-commonjs 这样的工具插件,但它不是万能的,尤其是在一些动态加载的场景,这同样也是 cjs 与 esm 最大的不同点。

所以说,很多时候我们不得不使用 external 选项排除 C/C++ 模块构建,以保障它能正常工作。

当然,这不是绝对的。如果你很熟悉 Vite、Rollup 的工作原理和 C/C++ 模块的 binding 方式,那么我相信你有更好的办法处理它们。”


同样也给出了解决方法

import electron from 'vite-plugin-electron'

export default {
  plugins: [
    electron({
      // Main process entry file of the Electron App.
      entry: 'e

你可能感兴趣的:(electron,javascript,前端)