如果名称与产品名称不同,则电子应用程序不会安装

时间:2017-08-14 23:59:37

标签: ubuntu debian electron deb electron-forge

我正在使用electron-forge创建我的电子应用程序并为我的项目创建可分发项。但是我遇到了一个奇怪的错误。 namepackage.json中的status-client字段productName,我的Utilities字段也是如此。

使用这些值,当我运行电子伪造时,我得到了我的可执行文件然后我可以像魅力一样安装它,并在Ubuntu的productName部分找到我的应用程序。

然而当我更改package.json文件中的package.json字段时会出现问题。可执行文件将被创建我能够安装它但是如果我使用新名称搜索我的应用程序我不能在任何地方找到它。

这是我的新 "name": "status-client", "productName": "Foo", "version": "1.0.4", "description": "Monitor when your raspberry pi goes online and when offline with desktop notifications", "main": "src/index.js", "scripts": { "start": "electron-forge start", "package": "electron-forge package", "make": "electron-forge make", "lint": "eslint src" }, "keywords": [], "author": "Manos Kounelakis <pkounelios@gmail.com>", "license": "MIT", "config": { "forge": { "make_targets": { "win32": [ "squirrel" ], "darwin": [ "zip" ], "linux": [ "deb" ] }, "electronPackagerConfig": { "packageManager": "npm" }, "electronWinstallerConfig": { "name": "status_client" }, "electronInstallerDebian": {}, "electronInstallerRedhat": {}, "github_repository": { "owner": "", "name": "" }, "windowsStoreConfig": { "packageName": "", "name": "statusclient" } } }, "dependencies": { "electron-compile": "^6.4.1" }, "devDependencies": { "babel-plugin-transform-async-to-generator": "^6.24.1", "babel-preset-env": "^1.6.0", "babel-preset-react": "^6.24.1", "electron-prebuilt-compile": "1.7.5", "eslint": "^3.19.0", "eslint-config-airbnb": "^15.1.0", "eslint-plugin-import": "^2.7.0", "eslint-plugin-jsx-a11y": "^5.1.1", "eslint-plugin-react": "^7.2.0" } }

{

Foo

使用上面的package.json我得到了可执行文件并安装了它但是如果我搜索我的程序package.json我什么都没得到。

以下是原始{ "name": "status-client", "productName": "status-client", "version": "1.0.4", "description": "Monitor when your raspberry pi goes online and when offline with desktop notifications", "main": "src/index.js", "scripts": { "start": "electron-forge start", "package": "electron-forge package", "make": "electron-forge make", "lint": "eslint src" }, "keywords": [], "author": "Manos Kounelakis <pkounelios@gmail.com>", "license": "MIT", "config": { "forge": { "make_targets": { "win32": [ "squirrel" ], "darwin": [ "zip" ], "linux": [ "deb" ] }, "electronPackagerConfig": { "packageManager": "npm" }, "electronWinstallerConfig": { "name": "status_client" }, "electronInstallerDebian": {}, "electronInstallerRedhat": {}, "github_repository": { "owner": "", "name": "" }, "windowsStoreConfig": { "packageName": "", "name": "statusclient" } } }, "dependencies": { "electron-compile": "^6.4.1" }, "devDependencies": { "babel-plugin-transform-async-to-generator": "^6.24.1", "babel-preset-env": "^1.6.0", "babel-preset-react": "^6.24.1", "electron-prebuilt-compile": "1.7.5", "eslint": "^3.19.0", "eslint-config-airbnb": "^15.1.0", "eslint-plugin-import": "^2.7.0", "eslint-plugin-jsx-a11y": "^5.1.1", "eslint-plugin-react": "^7.2.0" } }

status-client

现在使用最后一个package.json我得到了我的可执行文件。我可以安装它,当我搜索我的程序electron-forge make时,我会找到它。

我在运行items时没有遇到任何错误 任何想法为什么会这样?

2 个答案:

答案 0 :(得分:0)

这是因为/usr/bin/<name>/usr/lib/<name>/<name>的符号链接,但可执行文件位于/usr/lib/<name>/<productName>

这里完成: https://github.com/unindented/electron-installer-debian/blob/master/src/installer.js#L232

options.bin设置为pkg.name: https://github.com/unindented/electron-installer-debian/blob/master/src/installer.js#L12

我们可以通过设置bin的{​​{1}}属性来纠正该符号链接:

electronInstallerDebian

答案 1 :(得分:0)

我能看到的一个问题是:

   {
     "name": "application-name",

将“ - ”替换为“_”

"name": "application_name", 

再试一次。