Модуль доступа к дочернему процессу Electron после компиляции - PullRequest
0 голосов
/ 13 ноября 2018

Я делаю приложение с электроном, и в основном процессе я делаю парсер 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)

, и он потребляется этим: потребителем.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 на их компьютере.

Спасибо за помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...