Electron-packager - аргумент пути должен быть строкового типа. Полученный тип не определен

Я боролся с этой проблемой и не мог понять. Были опубликованы аналогичные проблемы, для решения которых предлагалась версия узла с ошибкой или версии пакетов должны быть обновлены / обновлены. Я пробовал это с изменением версий узлов, перепроверкой кеша npm и многими другими скрипками, у меня ничего не сработало. (это происходит при запуске приложения-> электрон)

Неперехваченное исключение: TypeError [ERR_INVALID_ARG_TYPE]: аргумент «путь» должен иметь строковый тип. Полученный тип не определен в assertPath (path.js: 39: 11) в базовом имени (path.js: 1299: 5) в Command.parse (/Users/ben.izadi/Documents/Developer/gsa-cloud-portal/ui/electron_app /publishTest2-mas-x64/publishTest2.app/Contents/Resources/app/node_modules/commander/index.js:462:30) в dispatchUploadFileMessageFromArgs (/Users/ben.izadi/Documents/Developer/gsa-cloud-portal/ui. /electron_app/publishTest2-mas-x64/publishTest2.app/Contents/Resources/app/index.js:38:4) на WebContents.win.webContents.on (/Users/ben.izadi/Documents/Developer/gsa-cloud -portal / ui / electronic_app / publishTest2-mas-x64 / publishTest2.app / Contents / Resources / app / index.js: 11: 5) в WebContents.emit (events.js: 182: 13)

внутри моего index.js:

const { app, BrowserWindow } = require('electron')
var program = require('commander');
path = require('path');

var win = null;

function createWindow() {
  win = new BrowserWindow({ width: 1024, height: 768 })
  win.loadFile('./app/index.html');
  win.webContents.on('did-finish-load', () => {
    dispatchUploadFileMessageFromArgs(process.argv);
  })
}

const instanceLock = app.requestSingleInstanceLock();
if (!instanceLock) {
  app.quit()
} else {
  app.on('second-instance', (event, argv, workingDirectory) => {
    if (win) {
      if (win.isMinimized()) {
        win.restore();
      }
      win.focus();
      dispatchUploadFileMessageFromArgs(argv);
    }
  })

  app.on('ready', createWindow);
}

function dispatchUploadFileMessageFromArgs(argv) {
  program
  .option(
    "-m, --modelfile [modelfile]",
    "Model to analyse in the GSA Cloud Platform"
  )
  .parse(argv);

  if (program.modelfile) {
    var absolutePath = path.resolve(program.modelfile);
    var basename = path.basename(absolutePath);
    win.webContents.send("upload-model-file", basename + "," + absolutePath);
  }
}

Package.json:

{
  "name": "gsa-portal-electron",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "electron .",
    "start:withfile": "electron . --modelfile ./stairs.gwb",
    "test": "run-script-os",
    "test:win32": "cd node_modules\\mocha\\bin & mocha ..\\..\\..\\tests\\without_upload\\*.spec.js",
    "test:darwin:linux": "./node_modules/mocha/bin/mocha tests/without_upload/*.spec.js",
    "test:ci": "xvfb-maybe ./node_modules/mocha/bin/mocha tests/without_upload/*.spec.js",
    "testupload": "run-script-os",
    "testupload:win32": "cd node_modules\\mocha\\bin & mocha ..\\..\\..\\tests\\upload\\*.spec.js",
    "testupload:darwin:linux": "./node_modules/mocha/bin/mocha tests/upload/*.spec.js",
    "testupload:ci": "xvfb-maybe ./node_modules/mocha/bin/mocha tests/upload/*.spec.js"

  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "chai": "^4.2.0",
    "chai-as-promised": "^7.1.1",
    "electron": "^3.0.10",
    "electron-reload": "^1.3.0",
    "mocha": "^5.2.0",
    "run-script-os": "^1.0.3",
    "spectron": "^5.0.0"
  },
  "dependencies": {
    "commander": "^2.19.0"
  }
}

person Ben    schedule 11.12.2018    source источник
comment
Не могли бы вы рассказать поподробнее? Вы получаете эту ошибку при упаковке или запуске приложения в dev?   -  person Hai Pham    schedule 12.12.2018
comment
+ upvote, у меня тоже возникла эта проблема, и я еще не нашел решения   -  person 247errorsnl    schedule 29.09.2019


Ответы (1)


Вам нужно установить «имя», которое будет использоваться, когда пользователи вводят --help

https://github.com/tj/commander.js#usage-and-name

В противном случае этот кодовый путь завершится ошибкой при попытке синтаксического анализа аргументов https://github.com/tj/commander.js/blob/master/index.js#L446.

Я предполагаю, что это только для Electron при попытке запустить связанное приложение

person Avram Tudor    schedule 01.10.2019