gonacli icon indicating copy to clipboard operation
gonacli copied to clipboard

windows上无法使用golang编写node native addon给electron干活

Open JustReactY opened this issue 2 years ago • 3 comments

今天看到了这个文章 请问是否遇到了这个问题?现在支持Windows是么? https://www.jianshu.com/p/2bb52d13d734

JustReactY avatar Jan 04 '23 03:01 JustReactY

今天看到这篇文章 请问是否遇到了这个问题?现在支持Windows是什么? https://www.jianshu.com/p/2bb52d13d734

你解决了吗?

OctoberCity avatar Apr 12 '23 01:04 OctoberCity

今天看到了这个文章 请问是否遇到了这个问题?现在支持Windows是么? https://www.jianshu.com/p/2bb52d13d734

gonacli 是有处理的

wenlng avatar Jul 21 '24 15:07 wenlng

我尝试了一下,我这里使用的是Vue CLI Plugin Electron Builder。在使用gonacli make和在output目录下执行npm run build:release以后,会在build\Release\会产生*.node文件。所需要的两个文件分别是生成目录根目录中的动态链接库文件(Windows下为.dll,Linux应该是.so)以及*.node文件。只需要这两个文件,将文件复制到vue-electron-build项目的src目录中随后需要设置vue.config.js的webpack配置。

const { defineConfig } = require('@vue/cli-service')

module.exports = defineConfig({
  transpileDependencies: true,
  pluginOptions: {
    electronBuilder: {
      nodeIntegration: true,
      preload: 'src/preload.js',
      chainWebpackMainProcess(config) {
        config.module
          .rule("node")
          .test(/\.node$/)
          .use("native-ext-loader")
          .loader("native-ext-loader")
      },
      chainWebpackRendererProcess: (config) => {
        config.module
        .rule("node")
        .test(/\.node$/)
        .use("native-ext-loader")
        .loader("native-ext-loader")
        .options({rewritePath:"src"})
      },
    }
  },
  lintOnSave: false  // 添加此行来禁用 ESLint 检查
})

然后在background.js中直接可以使用:

const addon = require("./**.node")

问题不大主要是需要webpack的一个node文件loader,踩坑时间都在这儿了

Big-Dan-Plus avatar Sep 01 '24 10:09 Big-Dan-Plus