Доступ к модулю Node в дочернем процессе Electron после компиляции

Я делаю приложение с электроном, и в основном процессе я создаю парсер xml, используя дочерний процесс со следующим кодом: xmlparser.js

const {parseString} = require('xml2js')
const moment = require('moment')
const testStrangeLayer = new RegExp(/^\de-\d$/)

const parseXML = function(str) {
    try {
        parseString(
            //parse function goes here
        )
    } catch(e) {
        process.exit(3)
    }
}

process.on('message',parseXML)

и он потребляется с этим: Consumer.js

const fork = require('child_process').fork
const proc = fork('xmlparser.js')
let result
proc.on('message',function(m){
    result = m
    console.log('parse successful')
    proc.kill()
})
proc.on('exit',function(code,signal){
    if(code) {
        console.error('parsing error')
    } else {
        console.log(result)
    }
})
proc.send(data)

Когда я нахожусь на стадии разработки, это работает просто отлично. Проблема возникает после того, как я скомпилирую приложение. И вот ошибку, которую я нашел:

Error: Cannot find module 'xml2js'
    at Function.Module._resolveFilename (module.js:543:15)
    at Function.Module._load (module.js:473:25)
    at Module.require (module.js:586:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (C:\<Path to App Folder>\resources\other-scripts\app\xmlp
arser.js:1:178)
    at Object.<anonymous> (C:\<Path to App Folder>\resources\other-scripts\app\xmlp
arser.js:53:3)
    at Module._compile (module.js:642:30)
    at Object.Module._extensions..js (module.js:653:10)
    at Module.load (module.js:561:32)
    at tryModuleLoad (module.js:504:12)
parsing error
(node:10888) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): #<Object>
(node:10888) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejection
s that are not handled will terminate the Node.js process with a non-zero exit code.
module.js:545
    throw err;
    ^

Интересно, что пошло не так, я даже уже добавил «child_process» в список зависимостей проекта. И моя цель — распространять это приложение без установки клиентом nodejs на свою машину.

Спасибо за вашу помощь


person auphali    schedule 13.11.2018    source источник
comment
посмотрите на это   -  person Redanium    schedule 13.11.2018
comment
Спасибо, но жаль, что это не работает. Я упоминал ранее, что он работает при разработке, но не работает в комплекте.   -  person auphali    schedule 14.11.2018
comment
Вы добавили xml2js к своим зависимостям или к своим devDependencies?   -  person Batajus    schedule 14.11.2018
comment
Я сделал, это в списке зависимостей   -  person auphali    schedule 15.11.2018