Запуск Electron с JS-файлом в качестве аргумента - PullRequest
0 голосов
/ 28 мая 2019

Когда я устанавливаю электронный быстрый запуск и запускаю

node_modules/.bin/electron --help

, он говорит мне:

A path to an Electron app may be specified. It must be one of the following:
  - index.js file.
  - Folder containing a package.json file.
  - Folder containing an index.js file.
  - .html/.htm file.
  - http://, https://, or file:// URL.

Запуск

node_modules/.bin/electron .

(т.е. опция «Папка, содержащая файл package.json») работает нормально.package.json указывает на main.js и выглядит следующим образом:

{
  "name": "electron-quick-start",
  "version": "1.0.0",
  "description": "A minimal Electron application",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "repository": "https://github.com/electron/electron-quick-start",
  "keywords": [
    "Electron",
    "quick",
    "start",
    "tutorial",
    "demo"
  ],
  "author": "GitHub",
  "license": "CC0-1.0",
  "devDependencies": {
    "electron": "^4.1.4"
  }
}

Я бы предположил, что выполнение этого:

node_modules/.bin/electron main.js

также должно работать, но это не так - онопросто показывает экран «фиктивного» электрона.

dummy screen

Как указать в командной строке, какой JavaScript запускать?

1 Ответ

0 голосов
/ 28 мая 2019

Оказывается, JavaScript выполняется нормально - проблема в том, как разрешается путь к основному HTML-файлу. Решение: заменить:

mainWindow.loadFile('index.html')

с:

const arg = process.argv[1]  // better command line parsing might be needed
const dir = fs.lstatSync(arg).isDirectory() ? arg : path.resolve(arg, '..')
mainWindow.loadFile(path.resolve(dir, 'index.html'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...