2017-08-14 38 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" 
      } 
      ... 
     } 
     ... 
    } 
    ... 
} 
相關問題