как запустить электронный двоичный файл в терминале командной строки (vty) - PullRequest
0 голосов
/ 08 мая 2018

Я создал электронное приложение с помощью express.js, причина разработки экспресс-приложения с электроном заключается в упаковке исполняемого файла, который работает без установленного узла.

Я успешно упаковал приложение в centos 7. Если дважды щелкнуть двоичный файл приложения, поступающий из centos GUI, он работает нормально. когда я пытаюсь запустить его с помощью командной строки для входа в терминал через putty, используя ./app, ничего не происходит, я не могу понять, почему.

есть ли способ запустить бинарный файл Centos, который генерируется при входе в электронный упаковщик из putty?

Исходный код выглядит следующим образом, команда, которую я использовал для упаковки: npm run build

Примечание: когда я пытаюсь запустить его через терминал с графическим интерфейсом, используя ./app, он снова работает нормально

main.js

 const {app, BrowserWindow} = require('electron')
  const path = require('path')
  const url = require('url')

var express = require('express');
var _app = express();
const server = require('http').Server(_app);
let PORT = 3001;
_app.use(express.static(__dirname + '/public'));

server.listen(PORT, () => {
    console.log(`Server is running on port ${PORT}`);
});

_app.get('/', (req, res) => {
    res.sendFile(__dirname + '/index.html');
});


  let win

  function createWindow () {
    win = new BrowserWindow({width: 800, height: 600})

    win.loadURL(url.format({
      pathname: path.join(__dirname, 'index.html'),
      protocol: 'file:',
      slashes: true
    }))

    win.webContents.openDevTools()

    win.on('closed', () => {
      win = null
    })
  }

  app.on('ready', createWindow)

  app.on('window-all-closed', () => {
    if (process.platform !== 'darwin') {
      app.quit()
    }
  })

  app.on('activate', () => {
    if (win === null) {
      createWindow()
    }
  })

package.json

    {
  "name": "myapp",
  "version": "1.0.0",
  "description": "",
  "main": "main.js",
  "scripts": {
    "start": "electron .",
    "build": "electron-packager . app --platform linux --arch x64 --out dist/",
    "rpm64": "electron-installer-redhat --src dist/app-linux-x64/ --dest dist/installers/ --arch x86_64",
    "pack": "build --dir",
    "dist": "build"
  },
  "build": {
    "appId": "myapp",
    "category": "your.app.category.type",
    "dmg": {
      "contents": [
        {
          "x": 110,
          "y": 150
        },
        {
          "x": 240,
          "y": 150,
          "type": "link",
          "path": "/root/projects/myapp"
        }
      ]
    },
    "linux": {
      "target": [
        "AppImage",
        "deb"
      ]
    },
    "win": {
      "target": "squirrel",
      "icon": "build/icon.ico"
    }
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "electron": "^2.0.0",
    "electron-builder": "^20.11.1",
    "electron-installer-redhat": "^0.5.0",
    "electron-packager": "*",
    "electron-prebuilt": "*"
  },
  "dependencies": {
    "electron-terminal-open": "^0.1.1",
    "express": "^4.16.3"
  }

1 Ответ

0 голосов
/ 24 мая 2018

, так как это приложение, похожее на веб-сервер, я смог развернуть его с пакетами узлов в том месте, где node.js os не устанавливает и не запускает его без проблем. ниже приведены шаги

в моем приложении узла на centos 7 я установил все зависимости, используя npm i затем я загрузил бинарные файлы linux для node.js в папку приложения и заполнил tar.gz.

затем я перемещаю его на другой ПК Centos, на котором не установлен узел.

Я распаковываю файл tar.gz и устанавливаю PATH в папку node.js, где в папке моего приложения следующим образом PATH=$PATH:/path/to/my/app/node/bin

тогда я запускаю npm start, и он работает без проблем. Я не использовал электрон здесь и не смог найти ответ на свой вопрос с электроном.

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