Added electron-forge version
This commit is contained in:
		
							
								
								
									
										89
									
								
								v2/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								v2/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,89 @@
 | 
			
		||||
# Logs
 | 
			
		||||
logs
 | 
			
		||||
*.log
 | 
			
		||||
npm-debug.log*
 | 
			
		||||
yarn-debug.log*
 | 
			
		||||
yarn-error.log*
 | 
			
		||||
lerna-debug.log*
 | 
			
		||||
 | 
			
		||||
# Diagnostic reports (https://nodejs.org/api/report.html)
 | 
			
		||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
 | 
			
		||||
 | 
			
		||||
# Runtime data
 | 
			
		||||
pids
 | 
			
		||||
*.pid
 | 
			
		||||
*.seed
 | 
			
		||||
*.pid.lock
 | 
			
		||||
.DS_Store
 | 
			
		||||
 | 
			
		||||
# Directory for instrumented libs generated by jscoverage/JSCover
 | 
			
		||||
lib-cov
 | 
			
		||||
 | 
			
		||||
# Coverage directory used by tools like istanbul
 | 
			
		||||
coverage
 | 
			
		||||
*.lcov
 | 
			
		||||
 | 
			
		||||
# nyc test coverage
 | 
			
		||||
.nyc_output
 | 
			
		||||
 | 
			
		||||
# node-waf configuration
 | 
			
		||||
.lock-wscript
 | 
			
		||||
 | 
			
		||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
 | 
			
		||||
build/Release
 | 
			
		||||
 | 
			
		||||
# Dependency directories
 | 
			
		||||
node_modules/
 | 
			
		||||
jspm_packages/
 | 
			
		||||
 | 
			
		||||
# TypeScript v1 declaration files
 | 
			
		||||
typings/
 | 
			
		||||
 | 
			
		||||
# TypeScript cache
 | 
			
		||||
*.tsbuildinfo
 | 
			
		||||
 | 
			
		||||
# Optional npm cache directory
 | 
			
		||||
.npm
 | 
			
		||||
 | 
			
		||||
# Optional eslint cache
 | 
			
		||||
.eslintcache
 | 
			
		||||
 | 
			
		||||
# Optional REPL history
 | 
			
		||||
.node_repl_history
 | 
			
		||||
 | 
			
		||||
# Output of 'npm pack'
 | 
			
		||||
*.tgz
 | 
			
		||||
 | 
			
		||||
# Yarn Integrity file
 | 
			
		||||
.yarn-integrity
 | 
			
		||||
 | 
			
		||||
# dotenv environment variables file
 | 
			
		||||
.env
 | 
			
		||||
.env.test
 | 
			
		||||
 | 
			
		||||
# parcel-bundler cache (https://parceljs.org/)
 | 
			
		||||
.cache
 | 
			
		||||
 | 
			
		||||
# next.js build output
 | 
			
		||||
.next
 | 
			
		||||
 | 
			
		||||
# nuxt.js build output
 | 
			
		||||
.nuxt
 | 
			
		||||
 | 
			
		||||
# vuepress build output
 | 
			
		||||
.vuepress/dist
 | 
			
		||||
 | 
			
		||||
# Serverless directories
 | 
			
		||||
.serverless/
 | 
			
		||||
 | 
			
		||||
# FuseBox cache
 | 
			
		||||
.fusebox/
 | 
			
		||||
 | 
			
		||||
# DynamoDB Local files
 | 
			
		||||
.dynamodb/
 | 
			
		||||
 | 
			
		||||
# Webpack
 | 
			
		||||
.webpack/
 | 
			
		||||
 | 
			
		||||
# Electron-Forge
 | 
			
		||||
out/
 | 
			
		||||
							
								
								
									
										84
									
								
								v2/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								v2/package.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,84 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "desktopdaemon2",
 | 
			
		||||
  "productName": "desktopdaemon2",
 | 
			
		||||
  "version": "1.0.0",
 | 
			
		||||
  "description": "My Electron application description",
 | 
			
		||||
  "main": ".webpack/main",
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "start": "electron-forge start",
 | 
			
		||||
    "package": "electron-forge package",
 | 
			
		||||
    "make": "electron-forge make",
 | 
			
		||||
    "publish": "electron-forge publish"
 | 
			
		||||
  },
 | 
			
		||||
  "keywords": [],
 | 
			
		||||
  "author": "ztimson",
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "config": {
 | 
			
		||||
    "forge": {
 | 
			
		||||
      "packagerConfig": {},
 | 
			
		||||
      "makers": [
 | 
			
		||||
        {
 | 
			
		||||
          "name": "@electron-forge/maker-squirrel",
 | 
			
		||||
          "config": {
 | 
			
		||||
            "name": "desktopdaemon2"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "name": "@electron-forge/maker-zip",
 | 
			
		||||
          "platforms": [
 | 
			
		||||
            "darwin"
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "name": "@electron-forge/maker-deb",
 | 
			
		||||
          "config": {}
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "name": "@electron-forge/maker-rpm",
 | 
			
		||||
          "config": {}
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "plugins": [
 | 
			
		||||
        [
 | 
			
		||||
          "@electron-forge/plugin-webpack",
 | 
			
		||||
          {
 | 
			
		||||
            "mainConfig": "./webpack.main.config.js",
 | 
			
		||||
            "renderer": {
 | 
			
		||||
              "config": "./webpack.renderer.config.js",
 | 
			
		||||
              "entryPoints": [
 | 
			
		||||
                {
 | 
			
		||||
                  "html": "./src/index.html",
 | 
			
		||||
                  "js": "./src/renderer.ts",
 | 
			
		||||
                  "name": "main_window"
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@electron-forge/cli": "^6.0.0-beta.65",
 | 
			
		||||
    "@electron-forge/maker-deb": "^6.0.0-beta.65",
 | 
			
		||||
    "@electron-forge/maker-rpm": "^6.0.0-beta.65",
 | 
			
		||||
    "@electron-forge/maker-squirrel": "^6.0.0-beta.65",
 | 
			
		||||
    "@electron-forge/maker-zip": "^6.0.0-beta.65",
 | 
			
		||||
    "@electron-forge/plugin-webpack": "^6.0.0-beta.65",
 | 
			
		||||
    "@typescript-eslint/eslint-plugin": "^5.32.0",
 | 
			
		||||
    "@typescript-eslint/parser": "^5.32.0",
 | 
			
		||||
    "@vercel/webpack-asset-relocator-loader": "^1.7.3",
 | 
			
		||||
    "css-loader": "^6.7.1",
 | 
			
		||||
    "electron": "20.0.1",
 | 
			
		||||
    "eslint": "^8.21.0",
 | 
			
		||||
    "eslint-plugin-import": "^2.26.0",
 | 
			
		||||
    "fork-ts-checker-webpack-plugin": "^7.2.13",
 | 
			
		||||
    "node-loader": "^2.0.0",
 | 
			
		||||
    "style-loader": "^3.3.1",
 | 
			
		||||
    "ts-loader": "^9.3.1",
 | 
			
		||||
    "typescript": "~4.5.4"
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "electron-squirrel-startup": "^1.0.0"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										7
									
								
								v2/src/index.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								v2/src/index.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
body {
 | 
			
		||||
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica,
 | 
			
		||||
    Arial, sans-serif;
 | 
			
		||||
  margin: auto;
 | 
			
		||||
  max-width: 38rem;
 | 
			
		||||
  padding: 2rem;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										12
									
								
								v2/src/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								v2/src/index.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html>
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="UTF-8" />
 | 
			
		||||
    <title>Hello World!</title>
 | 
			
		||||
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <h1>💖 Hello World!</h1>
 | 
			
		||||
    <p>Welcome to your Electron application.</p>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										54
									
								
								v2/src/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								v2/src/index.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
			
		||||
import { app, BrowserWindow } from 'electron';
 | 
			
		||||
// This allows TypeScript to pick up the magic constants that's auto-generated by Forge's Webpack
 | 
			
		||||
// plugin that tells the Electron app where to look for the Webpack-bundled app code (depending on
 | 
			
		||||
// whether you're running in development or production).
 | 
			
		||||
declare const MAIN_WINDOW_WEBPACK_ENTRY: string;
 | 
			
		||||
declare const MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY: string;
 | 
			
		||||
 | 
			
		||||
// Handle creating/removing shortcuts on Windows when installing/uninstalling.
 | 
			
		||||
if (require('electron-squirrel-startup')) {
 | 
			
		||||
  // eslint-disable-line global-require
 | 
			
		||||
  app.quit();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const createWindow = (): void => {
 | 
			
		||||
  // Create the browser window.
 | 
			
		||||
  const mainWindow = new BrowserWindow({
 | 
			
		||||
    height: 600,
 | 
			
		||||
    width: 800,
 | 
			
		||||
    webPreferences: {
 | 
			
		||||
      preload: MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY,
 | 
			
		||||
    },
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  // and load the index.html of the app.
 | 
			
		||||
  mainWindow.loadURL(MAIN_WINDOW_WEBPACK_ENTRY);
 | 
			
		||||
 | 
			
		||||
  // Open the DevTools.
 | 
			
		||||
  mainWindow.webContents.openDevTools();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// This method will be called when Electron has finished
 | 
			
		||||
// initialization and is ready to create browser windows.
 | 
			
		||||
// Some APIs can only be used after this event occurs.
 | 
			
		||||
app.on('ready', createWindow);
 | 
			
		||||
 | 
			
		||||
// Quit when all windows are closed, except on macOS. There, it's common
 | 
			
		||||
// for applications and their menu bar to stay active until the user quits
 | 
			
		||||
// explicitly with Cmd + Q.
 | 
			
		||||
app.on('window-all-closed', () => {
 | 
			
		||||
  if (process.platform !== 'darwin') {
 | 
			
		||||
    app.quit();
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
app.on('activate', () => {
 | 
			
		||||
  // On OS X it's common to re-create a window in the app when the
 | 
			
		||||
  // dock icon is clicked and there are no other windows open.
 | 
			
		||||
  if (BrowserWindow.getAllWindows().length === 0) {
 | 
			
		||||
    createWindow();
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
// In this file you can include the rest of your app's specific main process
 | 
			
		||||
// code. You can also put them in separate files and import them here.
 | 
			
		||||
							
								
								
									
										2
									
								
								v2/src/preload.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								v2/src/preload.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
// See the Electron documentation for details on how to use preload scripts:
 | 
			
		||||
// https://www.electronjs.org/docs/latest/tutorial/process-model#preload-scripts
 | 
			
		||||
							
								
								
									
										2
									
								
								v2/src/preload.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								v2/src/preload.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
// See the Electron documentation for details on how to use preload scripts:
 | 
			
		||||
// https://www.electronjs.org/docs/latest/tutorial/process-model#preload-scripts
 | 
			
		||||
							
								
								
									
										31
									
								
								v2/src/renderer.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								v2/src/renderer.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
/**
 | 
			
		||||
 * This file will automatically be loaded by webpack and run in the "renderer" context.
 | 
			
		||||
 * To learn more about the differences between the "main" and the "renderer" context in
 | 
			
		||||
 * Electron, visit:
 | 
			
		||||
 *
 | 
			
		||||
 * https://electronjs.org/docs/latest/tutorial/process-model
 | 
			
		||||
 *
 | 
			
		||||
 * By default, Node.js integration in this file is disabled. When enabling Node.js integration
 | 
			
		||||
 * in a renderer process, please be aware of potential security implications. You can read
 | 
			
		||||
 * more about security risks here:
 | 
			
		||||
 *
 | 
			
		||||
 * https://electronjs.org/docs/tutorial/security
 | 
			
		||||
 *
 | 
			
		||||
 * To enable Node.js integration in this file, open up `main.js` and enable the `nodeIntegration`
 | 
			
		||||
 * flag:
 | 
			
		||||
 *
 | 
			
		||||
 * ```
 | 
			
		||||
 *  // Create the browser window.
 | 
			
		||||
 *  mainWindow = new BrowserWindow({
 | 
			
		||||
 *    width: 800,
 | 
			
		||||
 *    height: 600,
 | 
			
		||||
 *    webPreferences: {
 | 
			
		||||
 *      nodeIntegration: true
 | 
			
		||||
 *    }
 | 
			
		||||
 *  });
 | 
			
		||||
 * ```
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
import './index.css';
 | 
			
		||||
 | 
			
		||||
console.log('👋 This message is being logged by "renderer.js", included via webpack');
 | 
			
		||||
							
								
								
									
										18
									
								
								v2/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								v2/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
{
 | 
			
		||||
  "compilerOptions": {
 | 
			
		||||
    "allowJs": true,
 | 
			
		||||
    "module": "commonjs",
 | 
			
		||||
    "skipLibCheck": true,
 | 
			
		||||
    "esModuleInterop": true,
 | 
			
		||||
    "noImplicitAny": true,
 | 
			
		||||
    "sourceMap": true,
 | 
			
		||||
    "baseUrl": ".",
 | 
			
		||||
    "outDir": "dist",
 | 
			
		||||
    "moduleResolution": "node",
 | 
			
		||||
    "resolveJsonModule": true,
 | 
			
		||||
    "paths": {
 | 
			
		||||
      "*": ["node_modules/*"]
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "include": ["src/**/*"]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								v2/webpack.main.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								v2/webpack.main.config.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
module.exports = {
 | 
			
		||||
  /**
 | 
			
		||||
   * This is the main entry point for your application, it's the first file
 | 
			
		||||
   * that runs in the main process.
 | 
			
		||||
   */
 | 
			
		||||
  entry: './src/index.ts',
 | 
			
		||||
  // Put your normal webpack config below here
 | 
			
		||||
  module: {
 | 
			
		||||
    rules: require('./webpack.rules'),
 | 
			
		||||
  },
 | 
			
		||||
  resolve: {
 | 
			
		||||
    extensions: ['.js', '.ts', '.jsx', '.tsx', '.css', '.json'],
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										3
									
								
								v2/webpack.plugins.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								v2/webpack.plugins.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
 | 
			
		||||
 | 
			
		||||
module.exports = [new ForkTsCheckerWebpackPlugin()];
 | 
			
		||||
							
								
								
									
										17
									
								
								v2/webpack.renderer.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								v2/webpack.renderer.config.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
const rules = require('./webpack.rules');
 | 
			
		||||
const plugins = require('./webpack.plugins');
 | 
			
		||||
 | 
			
		||||
rules.push({
 | 
			
		||||
  test: /\.css$/,
 | 
			
		||||
  use: [{ loader: 'style-loader' }, { loader: 'css-loader' }],
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  module: {
 | 
			
		||||
    rules,
 | 
			
		||||
  },
 | 
			
		||||
  plugins: plugins,
 | 
			
		||||
  resolve: {
 | 
			
		||||
    extensions: ['.js', '.ts', '.jsx', '.tsx', '.css'],
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										29
									
								
								v2/webpack.rules.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								v2/webpack.rules.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
module.exports = [
 | 
			
		||||
  // Add support for native node modules
 | 
			
		||||
  {
 | 
			
		||||
    // We're specifying native_modules in the test because the asset relocator loader generates a
 | 
			
		||||
    // "fake" .node file which is really a cjs file.
 | 
			
		||||
    test: /native_modules\/.+\.node$/,
 | 
			
		||||
    use: 'node-loader',
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    test: /\.(m?js|node)$/,
 | 
			
		||||
    parser: { amd: false },
 | 
			
		||||
    use: {
 | 
			
		||||
      loader: '@vercel/webpack-asset-relocator-loader',
 | 
			
		||||
      options: {
 | 
			
		||||
        outputAssetBase: 'native_modules',
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    test: /\.tsx?$/,
 | 
			
		||||
    exclude: /(node_modules|\.webpack)/,
 | 
			
		||||
    use: {
 | 
			
		||||
      loader: 'ts-loader',
 | 
			
		||||
      options: {
 | 
			
		||||
        transpileOnly: true,
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
		Reference in New Issue
	
	Block a user