我正在使用electron-forge
创建我的电子应用程序并为我的项目创建可分发项。但是我遇到了一个奇怪的错误。
name
个package.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
时没有遇到任何错误
任何想法为什么会这样?
答案 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",
再试一次。