Windows 上的 Electron Packager 什么都不做
Electron Packager On Windows Does Nothing
我在 Windows 中用 Electron 编写了一个小应用程序,并且有一些功能可以检查注册表以获取有关已安装的某些软件的信息,我需要 运行 另一台机器上的应用程序去测试。所以,我正在尝试打包我的应用程序。
首先,重要的是要注意,当我 运行 >electron .
在我的项目的根目录中时,它 运行 没有任何问题。
我已尝试手动打包应用程序,方法是将我的应用程序放在 resources\app
文件夹下并 运行 宁 Electron.exe。它不起作用。 Electron 应用程序在任务管理器中启动,然后以同样快的速度退出。没有任何错误或警告。没有对话或任何东西。
我已经安装了 electron-packager 模块,并尝试用它来打包应用程序。但是,它什么也不做。没有控制台输出,它只是在退出前停留了一会儿。而且退出的时候,没有打包好的app。什么也没有变。我尝试了 electron-builder 并得到了相同的结果。
总的来说我是节点的新手,所以我怀疑我只是做错了什么。这是我的package.json(我仍然不完全理解其目的):
{
"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"
}
}
我的目录结构如下
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
从我所看到的,我做的事情没有问题。就像我说的,当 运行 electron cli (electron .
) 它工作得很好。所以,我很茫然。我只能假设 package.json 可能有问题。有问题吗? 运行打包程序时,为什么我看不到任何控制台输出?
您不需要 electron-packager
,electron-builder
作为完整的解决方案就足够了,请参阅 https://github.com/electron-userland/electron-builder#quick-setup-guide
我会把我的脚本留给你,告诉你我如何用 electron-packager 的 API 打包我的应用程序,也许你可以用这个构建 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
我在 Windows 中用 Electron 编写了一个小应用程序,并且有一些功能可以检查注册表以获取有关已安装的某些软件的信息,我需要 运行 另一台机器上的应用程序去测试。所以,我正在尝试打包我的应用程序。
首先,重要的是要注意,当我 运行 >electron .
在我的项目的根目录中时,它 运行 没有任何问题。
我已尝试手动打包应用程序,方法是将我的应用程序放在 resources\app
文件夹下并 运行 宁 Electron.exe。它不起作用。 Electron 应用程序在任务管理器中启动,然后以同样快的速度退出。没有任何错误或警告。没有对话或任何东西。
我已经安装了 electron-packager 模块,并尝试用它来打包应用程序。但是,它什么也不做。没有控制台输出,它只是在退出前停留了一会儿。而且退出的时候,没有打包好的app。什么也没有变。我尝试了 electron-builder 并得到了相同的结果。
总的来说我是节点的新手,所以我怀疑我只是做错了什么。这是我的package.json(我仍然不完全理解其目的):
{
"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"
}
}
我的目录结构如下
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
从我所看到的,我做的事情没有问题。就像我说的,当 运行 electron cli (electron .
) 它工作得很好。所以,我很茫然。我只能假设 package.json 可能有问题。有问题吗? 运行打包程序时,为什么我看不到任何控制台输出?
您不需要 electron-packager
,electron-builder
作为完整的解决方案就足够了,请参阅 https://github.com/electron-userland/electron-builder#quick-setup-guide
我会把我的脚本留给你,告诉你我如何用 electron-packager 的 API 打包我的应用程序,也许你可以用这个构建 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