2016-08-30 7 views
1

Ich habe eine kleine App mit Electron in Windows geschrieben und habe einige Funktionen, die die Registrierung für Informationen über einige Software überprüft, die installiert ist, und ich muss die App auf einem anderen Computer zum Testen ausführen. Also versuche ich meine App zu packen.Electron Packager unter Windows macht nichts

Erstens ist es wichtig zu beachten, dass wenn ich >electron . im Stamm meines Projekts ausführen, es ohne Probleme ausgeführt wird.

Ich habe versucht, die App manuell zu packen, indem ich meine App unter den Ordner resources\app platziere und Electron.exe starte. Es funktioniert nicht. Die Electron App startet im Task-Manager, bevor sie genauso schnell beendet wird. Ohne irgendwelche Fehler oder Warnungen. Keine Dialoge oder irgendetwas.

Ich habe das Electron-Packager-Modul installiert und versucht, damit die App zu verpacken. Es tut jedoch nichts. Es gibt keine Konsolenausgabe, es bleibt nur eine Weile stehen, bevor es beendet wird. Und wenn es beendet wird, gibt es keine gepackte App. Nichts hat sich verändert. Ich habe den Elektronen-Builder ausprobiert und das gleiche Ergebnis erzielt.

Ich bin neu zu Knoten im Allgemeinen, so vermute ich, dass ich einfach etwas falsch mache. Das ist mein package.json (was ich immer noch nicht vollständig den Zweck verstehen):

{ 
    "name": "welcome", 
    "version": "0.1.0", 
    "description": "", 
    "main": "main.js", 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1", 
    "start": "electron .", 
    "compile": "node .\\node_modules\\webpack\\bin\\webpack.js", 
    "prep": "robocopy . releases\\app /XD node_modules releases blah /S /MIR /XF *.jsx \"webpack.config.js\" && robocopy node_modules\\winreg releases\\app && robocopy node_modules\\path releases\\app", 
    "package": "asar pack .\\releases\\app .\\releases\\app.asar", 
    "build": "electron-packager releases\\app WelcomeApp --ignore=node_modules --platform=win32 --arch=x64 --output=releases" 
    }, 
    "author": "", 
    "license": "ISC", 
    "babel": {}, 
    "dependencies": { 
    "electron": "^1.3.4", 
    "path": "^0.12.7", 
    "react": "^15.3.0", 
    "react-dom": "^15.3.0", 
    "winreg": "^1.2.1" 
    }, 
    "devDependencies": { 
    "babel-core": "^6.13.1", 
    "babel-loader": "^6.2.4", 
    "babel-preset-es2015": "^6.13.1", 
    "babel-preset-react": "^6.11.1", 
    "electron-builder": "^5.34.1", 
    "electron-packager": "^7.7.0", 
    "webpack": "^1.13.1" 
    } 
} 

ist meine Verzeichnisstruktur wie folgt

Welcome 
|____app 
|  |____src 
|  |  |____dist 
|  |  |  |____bundle.js 
|  |  |____react 
|  |  |  |____components 
|  |  |  |  |____installation.jsx 
|  |  |  |  |____... 
|  |  |  |  |____software.jsx 
|  |  |  |____index.jsx 
|  |  |____util 
|  |   |____data.js 
|  |____app.html 
|____node_modules 
|  |____... 
|____main.js 
|____package.json 
|____webpack.config.js 

Es gibt kein Problem mit dem, was ich tue, aus was ich sehen kann. Und wie ich schon sagte, wenn es mit einem Elektronencli läuft (electron .), funktioniert es einwandfrei. Also bin ich ratlos. Ich kann nur vermuten, dass mit dem package.json wahrscheinlich etwas nicht stimmt. Gibt es ein Problem? Warum sehe ich beim Ausführen des Packagers keine Konsolenausgabe?

+1

Sie haben eine ziemlich komplexe Verzeichnisstruktur. Da Sie ein Neuling im Bereich des Electron-Packagers sind, würde ich mit allem glatt anfangen, wie in der Quick Start-App, die auf electron.atom.io ist. Lass das zuerst funktionieren. (Es funktioniert gut für mich.) Dann beginnen Sie, mit einer anspruchsvolleren Baumstruktur ausgefeilter zu werden. –

+1

haben Sie versucht, Ihre App mit der API von electron-packager zu verpacken, anstatt Befehlszeilen zu verwenden? –

Antwort

3

ich werde Ihnen mein Skript von verlassen, wie ich meine Anwendung mit der API von Elektron-Packager verpacken, vielleicht können Sie bauen your.exe mit diesem.

'use strict'; 
var packager = require('electron-packager'); 
var options = { 
    'arch': 'ia32', 
    'platform': 'win32', 
    'dir': './', 
    'app-copyright': 'Paulo Galdo', 
    'app-version': '2.1.6', 
    'asar': true, 
    'icon': './app.ico', 
    'name': 'TierraDesktop', 
    'out': './releases', 
    'overwrite': true, 
    'prune': true, 
    'version': '1.3.4', 
    'version-string': { 
     'CompanyName': 'Paulo Galdo', 
     'FileDescription': 'Tierra de colores', /*This is what display windows on task manager, shortcut and process*/ 
     'OriginalFilename': 'TierraDesktop', 
     'ProductName': 'Tierra de colores', 
     'InternalName': 'TierraDesktop' 
    } 
}; 
packager(options, function done_callback(err, appPaths) { 
    console.log("Error: ", err); 
    console.log("appPaths: ", appPaths); 
}); 

Hier können Sie alle Optionen sehen Sie auf diesem Skript verwenden: link

+0

Dieses Skript hat funktioniert. Vielen Dank! Ich weiß nicht, warum CLI nicht funktioniert hat. :/ – Luke

+0

schön, ich hatte die gleichen Probleme mit der CLI –

+0

Ich habe versucht, Ihre Methode, aber es kann immer noch nicht lösen mein Ressourcenpfad Problem. Könnten Sie sich meine Post-Frage ansehen, wenn Sie Zeit haben? Danke vielmals. https: // Stapelüberlauf.com/questions/42900015/electron-packager-kann-nicht-locate-local-db-file-nach-packen –

-1

Sie brauchen nicht electron-packager, electron-builder genug ist als Komplettlösung finden https://github.com/electron-userland/electron-builder#quick-setup-guide

+0

Ich habe auch Builder versucht, und es tut auch nichts. Ich denke, es benutzt auch einen Elektronenpacker, oder? – Luke

+0

Die OP zu sagen, einen anderen Verpacker zu benutzen, wäre eine gute Antwort, wenn er den falschen benutzt, aber der Elektronenverpacker ist ein vollkommen akzeptabler Weg, Dinge zu tun, und es funktioniert für mich. (Ich weiß die Antwort noch nicht ... immer noch daran arbeiten.) –

+0

@MarcRochkind Frage markiert als'Elektronenerbauer' :) – develar