Сбой Electron после печати

#javascript #node.js #electron

#javascript #node.js #electron

Вопрос:

У меня есть блок кода, который открывает новое всплывающее окно и запускает печать. Печать работает нормально, но когда я закрываю всплывающее окно, приложение выходит из строя с ошибкой моего терминала, которая гласит « This is probably not a problem with npm. There is likely additional logging output above. «

 var img = jQuery("#imgWrap").html();
var popup = window.open();
console.log(popup);
popup.focus();
popup.document.write(img);
popup.print();
  

Вот полный вывод журнала

 0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   'C:\Program Files\nodejs\node.exe',
1 verbose cli   'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js',
1 verbose cli   'start'
1 verbose cli ]
2 info using npm@6.14.8
3 info using node@v14.11.0
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle electron-photobooth@1.0.0~prestart: electron-photobooth@1.0.0
6 info lifecycle electron-photobooth@1.0.0~start: electron-photobooth@1.0.0
7 verbose lifecycle electron-photobooth@1.0.0~start: unsafe-perm in lifecycle true
8 verbose lifecycle electron-photobooth@1.0.0~start: PATH: C:Program Filesnodejsnode_modulesnpmnode_modulesnpm-lifecyclenode-gyp-bin;C:Usersa_beeDocumentsappsElectronPhotoboothnode_modules.bin;C:Program Files (x86)Common FilesOracleJavajavapath;C:Program Files (x86)Common FilesIntelShared Librariesredistintel64compiler;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:WindowsSystem32OpenSSH;C:Program Files (x86)NVIDIA CorporationPhysXCommon;C:Program FilesTortoiseSVNbin;C:Program Filesnodejs;C:Usersa_beeAppDataLocalMicrosoftWindowsApps;;C:Usersa_beeAppDataLocalProgramsMicrosoft VS Codebin;C:Usersa_beeAppDataRoamingnpm
9 verbose lifecycle electron-photobooth@1.0.0~start: CWD: C:Usersa_beeDocumentsappsElectronPhotobooth
10 silly lifecycle electron-photobooth@1.0.0~start: Args: [ '/d /s /c', 'electron .' ]
11 silly lifecycle electron-photobooth@1.0.0~start: Returned: code: 3221226505  signal: null
12 info lifecycle electron-photobooth@1.0.0~start: Failed to exec start script
13 verbose stack Error: electron-photobooth@1.0.0 start: `electron .`
13 verbose stack Exit status 3221226505
13 verbose stack     at EventEmitter.<anonymous> (C:Program Filesnodejsnode_modulesnpmnode_modulesnpm-lifecycleindex.js:332:16)
13 verbose stack     at EventEmitter.emit (events.js:314:20)
13 verbose stack     at ChildProcess.<anonymous> (C:Program Filesnodejsnode_modulesnpmnode_modulesnpm-lifecyclelibspawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:314:20)
13 verbose stack     at maybeClose (internal/child_process.js:1047:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:287:5)
14 verbose pkgid electron-photobooth@1.0.0
15 verbose cwd C:Usersa_beeDocumentsappsElectronPhotobooth
16 verbose Windows_NT 10.0.18363
17 verbose argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "start"
18 verbose node v14.11.0
19 verbose npm  v6.14.8
20 error code ELIFECYCLE
21 error errno 3221226505
22 error electron-photobooth@1.0.0 start: `electron .`
22 error Exit status 3221226505
23 error Failed at the electron-photobooth@1.0.0 start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 3221226505, true ]
  

Комментарии:

1. возможно, попробуйте npm install , а затем запустите код снова? если он по-прежнему не работает, возможно, потребуется очистить кэш, в этом случае удалите папку node_modules, запустите npm cache verify и выполните npm install

2. There is likely additional logging output above." … Итак, есть ли дополнительный вывод журнала выше? Если да, можете ли вы поделиться этим с нами?

3. Добавлен полный вывод журнала к вопросу 🙂

4. Мне любопытно, почему вы src установили значение # ; что вы ожидаете от этого?

5. Я просто вставил это в пример кода. Я скопировал свой код и изменил свой вопрос, чтобы отразить мой фактический код.

Ответ №1:

Я еще немного боролся с этим, поэтому я попытался изменить версию Electron, которую я использовал. В Electron 9.3.1 он работает с использованием следующего кода:

 const electron = require('electron');
const BrowserWindow = electron.remote.BrowserWindow; 
let win = BrowserWindow.getFocusedWindow();

function print(){
   win.webContents.print({}, function(response){
     console.log(response);
   });
}