浏览代码

Windows Installer

Andrew Chalkley 9 年之前
父节点
当前提交
d20c23e521
共有 3 个文件被更改,包括 40 次插入0 次删除
  1. 1 0
      package.json
  2. 二进制
      resources/loading.gif
  3. 39 0
      scripts/windows-installer.js

+ 1 - 0
package.json

@@ -9,6 +9,7 @@
     "sign-mac": "electron-osx-sign out/flasher.js-darwin-x64/flasher.js.app",
     "pack-win": "electron-packager . flasher.js --asar  --overwrite --platform=win32 --arch=x64 --icon=resources/icon.ico --prune=true --out=out --version-string.CompanyName='ThingsSDK' --version-string.FileDescription='Flasher.js' --version-string.ProductName='Flasher.js'",
     "pack-mac": "electron-packager . --asar --overwrite --platform=darwin --arch=x64 --icon=resources/icon.icns --prune=true --out=out --osx-sign.identity='Developer ID Application: Secret Monkey Science'",
+    "installer-win": "node ./scripts/windows-installer.js",
     "test": "mocha"
   },
   "repository": {

二进制
resources/loading.gif


+ 39 - 0
scripts/windows-installer.js

@@ -0,0 +1,39 @@
+
+//Taken from Electron API Demos
+//https://github.com/electron/electron-api-demos/blob/master/script/installer.js
+
+const createWindowsInstaller = require('electron-winstaller').createWindowsInstaller
+const path = require('path')
+const rimraf = require('rimraf')
+
+deleteOutputFolder()
+  .then(getInstallerConfig)
+  .then(createWindowsInstaller)
+  .catch((error) => {
+    console.error(error.message || error)
+    process.exit(1)
+  })
+
+function getInstallerConfig () {
+  const rootPath = path.join(__dirname, '..')
+  const outPath = path.join(rootPath, 'out')
+
+  return Promise.resolve({
+    appDirectory: path.join(outPath, 'ElectronAPIDemos-win32-ia32'),
+    iconUrl: 'https://raw.githubusercontent.com/thingssdk/flasher.js/resources/icon.ico',
+    loadingGif: path.join(rootPath, 'resources', 'loading.gif'),
+    noMsi: true,
+    outputDirectory: path.join(outPath, 'windows-installer'),
+    setupExe: 'FlasherjsSetup.exe',
+    setupIcon: path.join(rootPath, 'resources', 'icon.ico'),
+    skipUpdateIcon: true
+  })
+}
+
+function deleteOutputFolder () {
+  return new Promise((resolve, reject) => {
+    rimraf(path.join(__dirname, '..', 'out', 'windows-installer'), (error) => {
+      error ? reject(error) : resolve()
+    })
+  })
+}