无法在 Vue + 电子应用程序中编译 opencv4nodejs

Posted

技术标签:

【中文标题】无法在 Vue + 电子应用程序中编译 opencv4nodejs【英文标题】:Couldn't compile opencv4nodejs in Vue + electron application 【发布时间】:2020-12-12 04:19:14 【问题描述】:

我正在尝试使用 opencv4nodejs、vue + electron-builder 构建一个人脸检测应用程序。在应用程序设置过程中,我遇到了一个问题,在安装 opencv4nodejs 后,在 npm run serve 期间出现以下错误。

Failed to compile.

./node_modules/opencv4nodejs/build/Release/opencv4nodejs.node 1:2
Module parse failed: Unexpected character '�' (1:2)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
(Source code omitted for this binary file)

如果有人可以帮助我,那就太好了。提前谢谢你

更新:我添加了我的 view.config.js 以供参考

module.exports = 
  chainWebpack: config => 
    config.module;
    // add ts files
    //      .rule('ts')
    //      .use('ts-loader')
    //        .loader('ts-loader')
    //        .tap(options => 
    // modify the options...
    //          return options
    //        )
  
;

【问题讨论】:

请分享您的 webpack.config 文件。 你好@Eldar 我已经添加了 vue.config.js 文件以供参考 将外部组件添加到 webpack webpack.js.org/configuration/externals 使用 webpack 加载 .node 文件需要添加node loader @Eldar 完全解决了我的问题,谢谢 【参考方案1】:

正如我们的朋友 @Eldar 所说,将 node-loader 添加到 vue.config.js 对我有用。谢谢

module.exports = 
  chainWebpack: config => 
    config.module       .rule('ts')
        .use('ts-loader')
        .loader('ts-loader')
        .end()
        .rule(/\.node$/)
        .use('node-loader')
        .loader('node-loader')
        .end()
  
;

希望这对大家有用。

【讨论】:

以上是关于无法在 Vue + 电子应用程序中编译 opencv4nodejs的主要内容,如果未能解决你的问题,请参考以下文章