Ошибка при запуске исполняемого файла приложения узла, выполняющего скрипт Powershell - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть приложение узла, которое выполняет скрипт Powershell helloworld.ps1 .Я хочу сделать исполняемый файл этого узла приложения.Для этого я использовал Ziet / pkg и мне удалось создать исполняемый файл для Linux, Mac и Windows , но я получаю сообщение об ошибке при запуске исполняемого файлана любой из платформ.

Ниже приведен код приложения узла:

let spawn = require('child_process').spawn, child;
let mqtt = require('mqtt');
let client = mqtt.connect('mqtt://13.58.186.254')
client.setMaxListeners(50);
runCheckScript = function () {

  child = spawn("pwsh", ["./helloworld.ps1"]);
  child.stdout.on("data", function (data) {
    client.on('connect', () => {

    })
    console.log("Powershell Script: " + data);
  });
  child.stderr.on("data", function (data) {
    console.log("Powershell Errors: " + data);
  });
  child.on("exit", function () {
    client.publish("codeblock-poc", "Powershell Script finished");
    console.log("Powershell Script finished");
    client.end();
  });
  child.stdin.end();

}

module.exports = runCheckScript;

Приведенный выше код выполняется следующим файлом app.js :

runner = require('./powershell');

runCheckScript()

Ниже приведен код сценария Powershell:

echo "Script working"
Get-Date

Write-Host "Press any key to continue ..."

Когда я запускаю приложение узла просто выполнив команду node app.js, я могу получитьтребуемый вывод, как показано на следующем снимке:

Expected execution when ran through the command

Однако, когда я запускаю исполняемый файл в Windows, я получаю следующую ошибку:

Error on windows machine

И на Mac я получаю следующую ошибку: Error On Mac

Я пытался, но вродезастрял сейчас.Пожалуйста, дайте мне знать, как мне решить эту проблему.

Ниже приведен файл package.json :

{
  "name": "poweshell-executable",
  "version": "1.0.0",
  "description": "A simple poc to execute powershell thorugh node",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "pkg": {
    "assets": "*.ps1"
  },
  "bin": "index.js",
  "author": "Anshuman Upadhyay",
  "license": "ISC",
  "dependencies": {
    "aws-iot-device-sdk": "^2.2.1",
    "graphql": "^14.1.1",
    "mqtt": "^2.18.8",
    "node-powershell": "^3.3.1",
    "time": "^0.12.0"
  },
  "resolutions": {
    "nexe/fuse-box": "3.1.0"
  }
}

Я снова посетил *Документы 1055 * zeit / pkg и они упомянули о добавлении тега pkg в package.json (как показано выше) и имеют следующий код в index.js , которое является значением bin свойства package.json .

path = require('path');
console.log(__dirname + '/' + 'helloworld.ps1');
path.join(__dirname + '/' + 'helloworld.ps1')

Теперь я создаю исполняемый файл как pkg package.json, и теперь предыдущая ошибка исчезла, но скрипт не выполняется:

Script not executing after certain changes

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