2016-08-30 10 views
1

私はWindows版Electronで小さなアプリを書いており、インストールされているソフトウェアに関する情報をレジストリで調べる機能があります。だから、私は自分のアプリをパッケージ化しようとしています。Windows上のElectron Packagerには何もありません

まず、>electron .をプロジェクトのルートに実行すると、問題なく実行されることに注意することが重要です。

resources\appフォルダの下に私のアプリを置き、Electron.exeを実行して、アプリケーションを手動でパッケージ化しようとしました。それは動作しません。電子アプリは、すぐに終了する前にタスクマネージャで起動します。エラーや警告なし。ダイアログなどはありません。

私は電子パッケージモジュールをインストールし、それを使ってアプリケーションをパッケージ化しようとしました。しかし、それは何もしません。コンソール出力はありません。終了する前に少し待ってください。それが終了すると、パッケージされたアプリはありません。何も変わっていません。私は電子ビルダーを試して、同じ結果を得ました。

私は一般的にノードを使い慣れていないので、私は単に何か間違っていると思います。これは、(私はまだ完全にはの目的を理解していない)私のpackage.jsonである:私はからやっている何をしても問題はありません

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 

次のように

{ 
    "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" 
    } 
} 

私のディレクトリ構造があります私が見ることができるもの。そして私が言ったように、電子cli(electron .)で走るとき、それは完全にうまく働く。だから、私は迷っている。私はおそらくpackage.jsonに何か問題があると推測することができます。問題はありますか?パッケージャを実行しているときにコンソール出力が表示されないのはなぜですか?

+1

あなたはかなり複雑なディレクトリ構造を持っています。あなたは電子包装の新人ですから、electron.atom.ioにあるQuick Startアプリのように、すべてのものから始めましょう。まずそれを働かせてください。 (それは私のためにうまく動作します。)次に、より洗練されたツリー構造でもっと精巧になっていきましょう。 –

+1

コマンドラインを使用する代わりにelectron-packagerのAPIを使用してアプリケーションをパッケージ化しようとしましたか? –

答えて

3

を参照してください、electron-builderは完全なソリューションとして十分である、electron-packagerを必要としませんこれでyour.exeを起動します。ここで

'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); 
}); 

あなたは、このスクリプトで使用できるすべてのオプションを見ることができます:link

+0

このスクリプトは機能しました。どうもありがとうございました!なぜCLIが動作していないのか分かりません。 :/ – Luke

+0

nice、私はCLIで同じ問題を抱えていました –

+0

あなたの方法を試しましたが、それでも私のリソースパスの問題を解決することはできません。あなたは時間があれば私のポストの質問を見てみることができますか?どうもありがとう。 https:// stackoverflow。com/questions/42900015/electron-packager-can-not-locate-local-db-after-packing –

-1

あなたは、私は多分あなたが構築することができ、私は電子パッケージャのAPIで自分のアプリケーションをパッケージ化する方法の私のスクリプトあなたを残しておきますhttps://github.com/electron-userland/electron-builder#quick-setup-guide

+0

ビルダーもやってみましたし、何もしません。電子包装機も使っていると思いますか? – Luke

+0

別のパッケージャを使用するようにOPに伝えることは、間違ったものを使用していた場合には良い答えになりますが、電子パッケージャは完全に受け入れられる方法であり、それは私のために働きます。 (私は答えはまだ分かっていません...まだ作業中です。) –

+0

@MarcRochkindの質問は「電子ビルダー」とタグ付けされています:) – develar

関連する問題