如何解决在电子中找不到自己构建的本机模块
因此,我遵循了本教程(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 举报,一经查实,本站将立刻删除。