Не удалось скомпилировать opencv4nodejs в приложении Vue electron

#vue.js #electron-builder #opencv4nodejs

#node.js #vue.js #opencv #electron-builder

Вопрос:

Я пытаюсь создать приложение для распознавания лиц с помощью opencv4nodejs, vue electron-builder. В процессе настройки приложения я столкнулся с проблемой, из-за которой я получаю следующую ошибку во время выполнения npm после установки opencv4nodejs.

 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
    //        })
  }
};
  

Комментарии:

1. Пожалуйста, поделитесь своим файлом webpack.config.

2. Привет @Eldar, я добавил vue.config.js файл для справки

3. Добавление внешних элементов в webpack webpack.js.org/configuration/externals

4. Вам нужно добавить загрузчик узлов для загрузки .node файлов с помощью webpack

5. @Eldar точно справился с моими проблемами, спасибо

Ответ №1:

Как прокомментировал наш друг @Eldar добавление загрузчика узлов в 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()
  }
};
  

Надеюсь, это полезно, ребята.