在电子中找不到自己构建的本机模块

问题描述

因此,我遵循了本教程(click),因为我需要在电子应用程序中执行一些自定义cpp代码。我可以完美地构建它,当我运行node index.js时,我会得到世界的问候。但是,当我在电子应用程序中使用它时,找不到构建模块,并且出现此错误

Uncaught TypeError: Cannot read property 'indexOf' of undefined
    at Function.getFileName (C:\Users\simon\WebstormProjects\w3champions-launcher\node_modules\bindings\bindings.js:178)
    at bindings (C:\Users\simon\WebstormProjects\w3champions-launcher\node_modules\bindings\bindings.js:82)
    at eval (App.vue?ec60:19)
    at Module../node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/App.vue?vue&type=script&lang=ts& (app.js:938)
    at __webpack_require__ (app.js:849)
    at fn (app.js:151)
    at eval (App.vue?96c8:1)
    at Module../src/App.vue?vue&type=script&lang=ts& (app.js:1329)
    at __webpack_require__ (app.js:849)
    at fn (app.js:151)
getFileName @ C:\Users\simon\WebstormProjects\w3champions-launcher\node_modules\bindings\bindings.js:178
bindings @ C:\Users\simon\WebstormProjects\w3champions-launcher\node_modules\bindings\bindings.js:82
eval @ App.vue?ec60:19
./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/App.vue?vue&type=script&lang=ts& @ app.js:938
__webpack_require__ @ app.js:849
fn @ app.js:151
eval @ App.vue?96c8:1
./src/App.vue?vue&type=script&lang=ts& @ app.js:1329
__webpack_require__ @ app.js:849
fn @ app.js:151
eval @ App.vue?bff9:1
./src/App.vue @ app.js:1317
__webpack_require__ @ app.js:849
fn @ app.js:151
eval @ main.ts:11
./src/main.ts @ app.js:1916
__webpack_require__ @ app.js:849
fn @ app.js:151
1 @ app.js:2061
__webpack_require__ @ app.js:849
checkDeferredModules @ app.js:46
(anonymous) @ app.js:925
(anonymous) @ app.js:928
vue.runtime.esm.js?2b0e:8440 You are running Vue in devel

我以前在其他模块上也遇到过类似的问题,可以通过在vue.config.js中将它们标记为外部依赖项来解决它们。但是对于我构建的模块,这似乎不起作用。看起来像这样:

module.exports = {
  pluginoptions: {
    electronBuilder: {
      externals: [... 'hello-world',...],}
  }
}

我还必须在这里做其他事情吗?不知道为什么找不到此模块...

编辑:我刚刚发现,我可以这样要求它:

const hello_world = require('./build/Release/hello-world')
console.log(hello_world.sayHi());

,然后它起作用。但是,我会说这有点愚蠢。还有什么我可以做的吗?同样,构建也不像这样工作,因为构建包在其他地方有模块。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)