2017-08-14 178 views
0

我正在使用electron-forge来创建我的电子应用程序并为我的项目创建可分发。但是,我遇到了一个奇怪的错误。 我的name字段在package.json id status-client所以我的productName字段。如果名称与产品名称不同,Electron应用程序将不会安装

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

但是当我改变我的package.json文件。该可执行productName领域的问题就来了,将创建我可以安装它,但如果我搜索我的应用程序的新名称我不能在任何地方找到它。

这是我的新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 <[email protected]>", 
    "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" 
    } 
} 

通过以上的package.json我得到的可执行文件,我安装它,但如果我搜索我的方案Foo我什么也没得到。

原来这里是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 <[email protected]>", 
    "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" 
    } 
} 

现在与过去的package.json我让我的可执行文件。我可以安装它,当我搜索我的方案status-client我会找到它。

我在运行时没有收到任何错误electron-forge make 任何想法为什么会发生这种情况?

回答

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为:

{ 
    "name": "application-name", 
    "productName": "Application Name", 
    ... 
    "config": { 
     "forge": { 
      ... 
      "electronInstallerDebian": { 
       "bin": "Application Name" 
      } 
      ... 
     } 
     ... 
    } 
    ... 
} 
相关问题