1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-11-23 11:56:00 +01:00

stub electron out

This commit is contained in:
Kyle Spearrin 2018-01-16 17:30:57 -05:00
parent 950ab69ea7
commit 45465d6169
7 changed files with 99 additions and 14 deletions

View File

@ -1,17 +1,23 @@
{ {
"name": "bitwarden", "name": "bitwarden",
"version": "0.0.0", "version": "0.0.0",
"main": "main.js",
"scripts": { "scripts": {
"dev": "webpack --config webpack.dev.js", "dev": "webpack --config webpack.dev.js",
"dev:watch": "webpack --config webpack.dev.js --watch", "dev:watch": "webpack --config webpack.dev.js --watch",
"lint": "tslint src/**/*.ts || true", "lint": "tslint src/**/*.ts || true",
"lint:fix": "tslint src/**/*.ts --fix", "lint:fix": "tslint src/**/*.ts --fix",
"server": "webpack-dev-server --inline --progress --port 8080 --config webpack.dev.js" "server": "webpack-dev-server --inline --progress --port 8080 --config webpack.dev.js",
"electron:dev": "npm run dev && tsc src/main.ts --outDir build && electron ./build --serve"
}, },
"devDependencies": { "devDependencies": {
"@bitwarden/jslib": "git+https://github.com/bitwarden/jslib.git",
"clean-webpack-plugin": "^0.1.17", "clean-webpack-plugin": "^0.1.17",
"copy-webpack-plugin": "^4.2.0", "copy-webpack-plugin": "^4.2.0",
"css-loader": "^0.28.7", "css-loader": "^0.28.7",
"electron": "1.7.10",
"electron-builder": "19.53.7",
"electron-reload": "1.2.2",
"extract-text-webpack-plugin": "^3.0.1", "extract-text-webpack-plugin": "^3.0.1",
"file-loader": "^1.1.5", "file-loader": "^1.1.5",
"font-awesome": "4.7.0", "font-awesome": "4.7.0",
@ -41,7 +47,6 @@
"@angular/upgrade": "5.2.0", "@angular/upgrade": "5.2.0",
"core-js": "^2.4.1", "core-js": "^2.4.1",
"rxjs": "^5.5.6", "rxjs": "^5.5.6",
"zone.js": "^0.8.19", "zone.js": "^0.8.19"
"@bitwarden/jslib": "git+https://github.com/bitwarden/jslib.git"
} }
} }

View File

@ -14,7 +14,10 @@ const routes: Routes = [
]; ];
@NgModule({ @NgModule({
imports: [RouterModule.forRoot(routes/*, { enableTracing: true }*/)], imports: [RouterModule.forRoot(routes, {
useHash: true,
/*enableTracing: true,*/
})],
exports: [RouterModule], exports: [RouterModule],
}) })
export class AppRoutingModule { } export class AppRoutingModule { }

6
src/app/main.ts Normal file
View File

@ -0,0 +1,6 @@
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>bitwarden</title> <title>bitwarden</title>
<base href="/"> <base href="">
</head> </head>
<body> <body>
<app-root></app-root> <app-root></app-root>

View File

@ -1,6 +1,72 @@
import { enableProdMode } from '@angular/core'; import { app, BrowserWindow, screen } from 'electron';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import * as path from 'path';
import * as url from 'url';
import { AppModule } from './app/app.module'; let win: BrowserWindow;
const args = process.argv.slice(1);
const serve = args.some((val) => val === '--serve');
platformBrowserDynamic().bootstrapModule(AppModule); if (serve) {
require('electron-reload')(__dirname, {});
}
function createWindow() {
const electronScreen = screen;
const size = electronScreen.getPrimaryDisplay().workAreaSize;
// Create the browser window.
win = new BrowserWindow({
x: 0,
y: 0,
width: size.width,
height: size.height,
});
// and load the index.html of the app.
win.loadURL(url.format({
protocol: 'file:',
pathname: path.join(__dirname, '/app/index.html'),
slashes: true,
}));
// Open the DevTools.
if (serve) {
win.webContents.openDevTools();
}
// Emitted when the window is closed.
win.on('closed', () => {
// Dereference the window object, usually you would store window
// in an array if your app supports multi windows, this is the time
// when you should delete the corresponding element.
win = null;
});
}
try {
// 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.
app.on('window-all-closed', () => {
// On OS X it is common for applications and their menu bar
// to stay active until the user quits explicitly with Cmd + Q
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 (win === null) {
createWindow();
}
});
} catch (e) {
// Catch Error
// throw e;
}

5
src/package.json Normal file
View File

@ -0,0 +1,5 @@
{
"name": "bitwarden",
"version": "0.0.1",
"main": "main.js"
}

View File

@ -22,7 +22,7 @@ module.exports = {
stats: 'minimal' stats: 'minimal'
}, },
entry: { entry: {
'app': './src/main.ts' 'app/main': './src/app/main.ts'
}, },
module: { module: {
rules: [ rules: [
@ -47,17 +47,17 @@ module.exports = {
path.resolve(__dirname, 'build/*') path.resolve(__dirname, 'build/*')
]), ]),
new webpack.optimize.CommonsChunkPlugin({ new webpack.optimize.CommonsChunkPlugin({
name: 'vendor', name: 'app/vendor',
chunks: ['app'], chunks: ['app/main'],
minChunks: isVendorModule minChunks: isVendorModule
}), }),
new HtmlWebpackPlugin({ new HtmlWebpackPlugin({
template: './src/index.html', template: './src/index.html',
filename: 'index.html', filename: 'index.html',
chunks: ['vendor', 'app'] chunks: ['app/vendor', 'app/main']
}), }),
new CopyWebpackPlugin([ new CopyWebpackPlugin([
'./src/package.json',
]) ])
], ],
resolve: { resolve: {