diff --git a/.electron-vue/build.js b/.electron-vue/build.js
deleted file mode 100644
index bdfb5af..0000000
--- a/.electron-vue/build.js
+++ /dev/null
@@ -1,132 +0,0 @@
-'use strict'
-
-process.env.NODE_ENV = 'production'
-
-const { say } = require('cfonts')
-const chalk = require('chalk')
-const del = require('del')
-const { spawn } = require('child_process')
-const webpack = require('webpack')
-const Multispinner = require('multispinner')
-
-
-const mainConfig = require('./webpack.main.config')
-const rendererConfig = require('./webpack.renderer.config')
-// const webConfig = require('./webpack.web.config')
-
-const doneLog = chalk.bgGreen.white(' DONE ') + ' '
-const errorLog = chalk.bgRed.white(' ERROR ') + ' '
-const okayLog = chalk.bgBlue.white(' OKAY ') + ' '
-const isCI = process.env.CI || false
-
-if (process.env.BUILD_TARGET === 'clean') clean()
-else if (process.env.BUILD_TARGET === 'web') web()
-else build()
-
-function clean () {
- del.sync(['build/*', '!build/icons', '!build/icons/icon.*'])
- console.log(`\n${doneLog}\n`)
- process.exit()
-}
-
-function build () {
- greeting()
-
- del.sync(['dist/electron/*', '!.gitkeep'])
-
- const tasks = ['main', 'renderer']
- const m = new Multispinner(tasks, {
- preText: 'building',
- postText: 'process'
- })
-
- let results = ''
-
- m.on('success', () => {
- process.stdout.write('\x1B[2J\x1B[0f')
- console.log(`\n\n${results}`)
- console.log(`${okayLog}take it away ${chalk.yellow('`electron-builder`')}\n`)
- process.exit()
- })
-
- pack(mainConfig).then(result => {
- results += result + '\n\n'
- m.success('main')
- }).catch(err => {
- m.error('main')
- console.log(`\n ${errorLog}failed to build main process`)
- console.error(`\n${err}\n`)
- process.exit(1)
- })
-
- pack(rendererConfig).then(result => {
- results += result + '\n\n'
- m.success('renderer')
- }).catch(err => {
- m.error('renderer')
- console.log(`\n ${errorLog}failed to build renderer process`)
- console.error(`\n${err}\n`)
- process.exit(1)
- })
-}
-
-function pack (config) {
- return new Promise((resolve, reject) => {
- config.mode = 'production'
- webpack(config, (err, stats) => {
- if (err) reject(err.stack || err)
- else if (stats.hasErrors()) {
- let err = ''
-
- stats.toString({
- chunks: false,
- colors: true
- })
- .split(/\r?\n/)
- .forEach(line => {
- err += ` ${line}\n`
- })
-
- reject(err)
- } else {
- resolve(stats.toString({
- chunks: false,
- colors: true
- }))
- }
- })
- })
-}
-
-// function web () {
-// del.sync(['dist/web/*', '!.gitkeep'])
-// webConfig.mode = 'production'
-// webpack(webConfig, (err, stats) => {
-// if (err || stats.hasErrors()) console.log(err)
-
-// console.log(stats.toString({
-// chunks: false,
-// colors: true
-// }))
-
-// process.exit()
-// })
-// }
-
-function greeting () {
- const cols = process.stdout.columns
- let text = ''
-
- if (cols > 85) text = 'lets-build'
- else if (cols > 60) text = 'lets-|build'
- else text = false
-
- if (text && !isCI) {
- say(text, {
- colors: ['yellow'],
- font: 'simple3d',
- space: false
- })
- } else console.log(chalk.yellow.bold('\n lets-build'))
- console.log()
-}
diff --git a/.electron-vue/dev-client.js b/.electron-vue/dev-client.js
deleted file mode 100644
index 2913ea4..0000000
--- a/.electron-vue/dev-client.js
+++ /dev/null
@@ -1,40 +0,0 @@
-const hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true')
-
-hotClient.subscribe(event => {
- /**
- * Reload browser when HTMLWebpackPlugin emits a new index.html
- *
- * Currently disabled until jantimon/html-webpack-plugin#680 is resolved.
- * https://github.com/SimulatedGREG/electron-vue/issues/437
- * https://github.com/jantimon/html-webpack-plugin/issues/680
- */
- // if (event.action === 'reload') {
- // window.location.reload()
- // }
-
- /**
- * Notify `mainWindow` when `main` process is compiling,
- * giving notice for an expected reload of the `electron` process
- */
- if (event.action === 'compiling') {
- document.body.innerHTML += `
-
-
-
- Compiling Main Process...
-
- `
- }
-})
diff --git a/.electron-vue/dev-runner.js b/.electron-vue/dev-runner.js
deleted file mode 100644
index 51633de..0000000
--- a/.electron-vue/dev-runner.js
+++ /dev/null
@@ -1,190 +0,0 @@
-'use strict'
-
-const chalk = require('chalk')
-const electron = require('electron')
-const path = require('path')
-const { say } = require('cfonts')
-const { spawn } = require('child_process')
-const webpack = require('webpack')
-const WebpackDevServer = require('webpack-dev-server')
-const webpackHotMiddleware = require('webpack-hot-middleware')
-
-const mainConfig = require('./webpack.main.config')
-const rendererConfig = require('./webpack.renderer.config')
-
-let electronProcess = null
-let manualRestart = false
-let hotMiddleware
-
-function logStats (proc, data) {
- let log = ''
-
- log += chalk.yellow.bold(`┏ ${proc} Process ${new Array((19 - proc.length) + 1).join('-')}`)
- log += '\n\n'
-
- if (typeof data === 'object') {
- data.toString({
- colors: true,
- chunks: false
- }).split(/\r?\n/).forEach(line => {
- log += ' ' + line + '\n'
- })
- } else {
- log += ` ${data}\n`
- }
-
- log += '\n' + chalk.yellow.bold(`┗ ${new Array(28 + 1).join('-')}`) + '\n'
-
- console.log(log)
-}
-
-function startRenderer () {
- return new Promise((resolve, reject) => {
- rendererConfig.entry.renderer = [path.join(__dirname, 'dev-client')].concat(rendererConfig.entry.renderer)
- rendererConfig.mode = 'development'
- const compiler = webpack(rendererConfig)
- hotMiddleware = webpackHotMiddleware(compiler, {
- log: false,
- heartbeat: 2500
- })
-
- compiler.hooks.compilation.tap('compilation', compilation => {
- compilation.hooks.htmlWebpackPluginAfterEmit.tapAsync('html-webpack-plugin-after-emit', (data, cb) => {
- hotMiddleware.publish({ action: 'reload' })
- cb()
- })
- })
-
- compiler.hooks.done.tap('done', stats => {
- logStats('Renderer', stats)
- })
-
- const server = new WebpackDevServer(
- compiler,
- {
- contentBase: path.join(__dirname, '../'),
- quiet: true,
- before (app, ctx) {
- app.use(hotMiddleware)
- ctx.middleware.waitUntilValid(() => {
- resolve()
- })
- }
- }
- )
-
- server.listen(9080)
- })
-}
-
-function startMain () {
- return new Promise((resolve, reject) => {
- mainConfig.entry.main = [path.join(__dirname, '../src/main/index.dev.js')].concat(mainConfig.entry.main)
- mainConfig.mode = 'development'
- const compiler = webpack(mainConfig)
-
- compiler.hooks.watchRun.tapAsync('watch-run', (compilation, done) => {
- logStats('Main', chalk.white.bold('compiling...'))
- hotMiddleware.publish({ action: 'compiling' })
- done()
- })
-
- compiler.watch({}, (err, stats) => {
- if (err) {
- console.log(err)
- return
- }
-
- logStats('Main', stats)
-
- if (electronProcess && electronProcess.kill) {
- manualRestart = true
- process.kill(electronProcess.pid)
- electronProcess = null
- startElectron()
-
- setTimeout(() => {
- manualRestart = false
- }, 5000)
- }
-
- resolve()
- })
- })
-}
-
-function startElectron () {
- var args = [
- '--inspect=5858',
- path.join(__dirname, '../dist/electron/main.js')
- ]
-
- // detect yarn or npm and process commandline args accordingly
- if (process.env.npm_execpath.endsWith('yarn.js')) {
- args = args.concat(process.argv.slice(3))
- } else if (process.env.npm_execpath.endsWith('npm-cli.js')) {
- args = args.concat(process.argv.slice(2))
- }
-
- electronProcess = spawn(electron, args)
-
- electronProcess.stdout.on('data', data => {
- electronLog(data, 'blue')
- })
- electronProcess.stderr.on('data', data => {
- electronLog(data, 'red')
- })
-
- electronProcess.on('close', () => {
- if (!manualRestart) process.exit()
- })
-}
-
-function electronLog (data, color) {
- let log = ''
- data = data.toString().split(/\r?\n/)
- data.forEach(line => {
- log += ` ${line}\n`
- })
- if (/[0-9A-z]+/.test(log)) {
- console.log(
- chalk[color].bold('┏ Electron -------------------') +
- '\n\n' +
- log +
- chalk[color].bold('┗ ----------------------------') +
- '\n'
- )
- }
-}
-
-function greeting () {
- const cols = process.stdout.columns
- let text = ''
-
- if (cols > 104) text = 'electron-vue'
- else if (cols > 76) text = 'electron-|vue'
- else text = false
-
- if (text) {
- say(text, {
- colors: ['yellow'],
- font: 'simple3d',
- space: false
- })
- } else console.log(chalk.yellow.bold('\n electron-vue'))
- console.log(chalk.blue(' getting ready...') + '\n')
-}
-
-function init () {
- greeting()
-
- Promise.all([startRenderer(), startMain()])
- .then(() => {
- startElectron()
- })
- .catch(err => {
- console.error(err)
- })
-}
-
-init()
diff --git a/.electron-vue/webpack.docs.config.js b/.electron-vue/webpack.docs.config.js
deleted file mode 100644
index 5a7546f..0000000
--- a/.electron-vue/webpack.docs.config.js
+++ /dev/null
@@ -1,120 +0,0 @@
-const HtmlWebpackPlugin = require('html-webpack-plugin')
-const MiniCssExtractPlugin = require('mini-css-extract-plugin')
-const path = require('path')
-const { VueLoaderPlugin } = require('vue-loader')
-const webpack = require('webpack')
-
-module.exports = {
- mode: 'development',
- context: path.resolve(__dirname, '../docs'),
- entry: './main.js',
- output: {
- path: path.resolve(__dirname, '../docs/dist'),
- filename: "index.js"
- },
- resolve: {
- alias: {
- 'icons': path.resolve(__dirname, '../build/icons')
- }
- },
- module: {
- rules: [
- {
- test: /\.(js|vue)$/,
- enforce: 'pre',
- exclude: /node_modules/,
- use: {
- loader: 'eslint-loader',
- options: {
- formatter: require('eslint-friendly-formatter')
- }
- }
- },
- {
- test: /\.styl(us)?$/,
- use: [
- 'vue-style-loader',
- 'css-loader',
- 'stylus-loader'
- ]
- },
- {
- test: /\.pug$/, loader: "pug-plain-loader"
- },
- {
- test: /\.css$/,
- use: ['vue-style-loader', 'css-loader']
- },
- {
- test: /\.html$/,
- use: 'vue-html-loader'
- },
- {
- test: /\.js$/,
- use: 'babel-loader',
- exclude: /node_modules/
- },
- {
- test: /\.node$/,
- use: 'node-loader'
- },
- {
- test: /\.vue$/,
- use: {
- loader: 'vue-loader',
- }
- },
- {
- test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
- use: {
- loader: 'url-loader',
- query: {
- limit: 10000,
- name: 'imgs/[name]--[folder].[ext]'
- }
- }
- },
- {
- test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
- loader: 'url-loader',
- options: {
- limit: 10000,
- name: 'media/[name]--[folder].[ext]'
- }
- },
- {
- test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
- use: {
- loader: 'url-loader',
- query: {
- limit: 10000,
- name: 'fonts/[name]--[folder].[ext]'
- }
- }
- }
- ]
- },
- plugins: [
- new VueLoaderPlugin(),
- new HtmlWebpackPlugin({
- template: path.resolve(__dirname, '../docs/template.html')
- }),
- new MiniCssExtractPlugin({filename: 'styles.css'}),
- ]
-}
-
-if (process.env.NODE_ENV === 'production') {
- // module.exports.devtool = '#source-map'
- // http://vue-loader.vuejs.org/en/workflow/production.html
- module.exports.mode = 'production'
- module.exports.plugins = (module.exports.plugins || []).concat([
- new webpack.DefinePlugin({
- 'process.env': {
- NODE_ENV: '"production"'
- }
- }),
- new webpack.LoaderOptionsPlugin({
- minimize: true
- })
- ])
-}
diff --git a/.electron-vue/webpack.main.config.js b/.electron-vue/webpack.main.config.js
deleted file mode 100644
index ad541e4..0000000
--- a/.electron-vue/webpack.main.config.js
+++ /dev/null
@@ -1,83 +0,0 @@
-'use strict'
-
-process.env.BABEL_ENV = 'main'
-
-const path = require('path')
-const { dependencies } = require('../package.json')
-const webpack = require('webpack')
-
-const BabiliWebpackPlugin = require('babili-webpack-plugin')
-
-let mainConfig = {
- entry: {
- main: path.join(__dirname, '../src/main/index.js')
- },
- externals: [
- ...Object.keys(dependencies || {})
- ],
- module: {
- rules: [
- {
- test: /\.(js)$/,
- enforce: 'pre',
- exclude: /node_modules/,
- use: {
- loader: 'eslint-loader',
- options: {
- formatter: require('eslint-friendly-formatter')
- }
- }
- },
- {
- test: /\.js$/,
- use: 'babel-loader',
- exclude: /node_modules/
- },
- {
- test: /\.node$/,
- use: 'node-loader'
- }
- ]
- },
- node: {
- __dirname: process.env.NODE_ENV !== 'production',
- __filename: process.env.NODE_ENV !== 'production'
- },
- output: {
- filename: '[name].js',
- libraryTarget: 'commonjs2',
- path: path.join(__dirname, '../dist/electron')
- },
- plugins: [
- new webpack.NoEmitOnErrorsPlugin()
- ],
- resolve: {
- extensions: ['.js', '.json', '.node']
- },
- target: 'electron-main'
-}
-
-/**
- * Adjust mainConfig for development settings
- */
-if (process.env.NODE_ENV !== 'production') {
- mainConfig.plugins.push(
- new webpack.DefinePlugin({
- '__static': `"${path.join(__dirname, '../static').replace(/\\/g, '\\\\')}"`
- })
- )
-}
-
-/**
- * Adjust mainConfig for production settings
- */
-if (process.env.NODE_ENV === 'production') {
- mainConfig.plugins.push(
- new BabiliWebpackPlugin(),
- new webpack.DefinePlugin({
- 'process.env.NODE_ENV': '"production"'
- })
- )
-}
-
-module.exports = mainConfig
diff --git a/.electron-vue/webpack.renderer.config.js b/.electron-vue/webpack.renderer.config.js
deleted file mode 100644
index dee9bd1..0000000
--- a/.electron-vue/webpack.renderer.config.js
+++ /dev/null
@@ -1,194 +0,0 @@
-'use strict'
-
-process.env.BABEL_ENV = 'renderer'
-
-const path = require('path')
-const { dependencies } = require('../package.json')
-const webpack = require('webpack')
-
-const BabiliWebpackPlugin = require('babili-webpack-plugin')
-const CopyWebpackPlugin = require('copy-webpack-plugin')
-const MiniCssExtractPlugin = require('mini-css-extract-plugin')
-const HtmlWebpackPlugin = require('html-webpack-plugin')
-const { VueLoaderPlugin } = require('vue-loader')
-
-/**
- * List of node_modules to include in webpack bundle
- *
- * Required for specific packages like Vue UI libraries
- * that provide pure *.vue files that need compiling
- * https://simulatedgreg.gitbooks.io/electron-vue/content/en/webpack-configurations.html#white-listing-externals
- */
-let whiteListedModules = ['vue']
-
-let rendererConfig = {
- devtool: '#cheap-module-eval-source-map',
- entry: {
- renderer: path.join(__dirname, '../src/renderer/main.js')
- },
- externals: [
- // ...Object.keys(dependencies || {}).filter(d => !whiteListedModules.includes(d))
- ],
- module: {
- rules: [
- {
- test: /\.(js|vue)$/,
- enforce: 'pre',
- exclude: /node_modules/,
- use: {
- loader: 'eslint-loader',
- options: {
- formatter: require('eslint-friendly-formatter')
- }
- }
- },
- {
- test: /\.styl(us)?$/,
- use: [
- 'vue-style-loader',
- 'css-loader',
- 'stylus-loader'
- ]
- },
- {
- test: /\.less$/,
- use: ['vue-style-loader', 'css-loader', 'less-loader']
- },
- {
- test: /\.css$/,
- use: ['vue-style-loader', 'css-loader']
- },
- {
- test: /\.html$/,
- use: 'vue-html-loader'
- },
- {
- test: /\.js$/,
- use: 'babel-loader',
- exclude: /node_modules/
- },
- {
- test: /\.node$/,
- use: 'node-loader'
- },
- {
- test: /\.vue$/,
- use: {
- loader: 'vue-loader',
- options: {
- extractCSS: process.env.NODE_ENV === 'production',
- loaders: {
- sass: 'vue-style-loader!css-loader!sass-loader?indentedSyntax=1',
- scss: 'vue-style-loader!css-loader!sass-loader',
- less: 'vue-style-loader!css-loader!less-loader',
- stylus: 'vue-style-loader!css-loader!stylus-loader'
- }
- }
- }
- },
- {
- test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
- use: {
- loader: 'url-loader',
- query: {
- limit: 10000,
- name: 'imgs/[name]--[folder].[ext]'
- }
- }
- },
- {
- test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
- loader: 'url-loader',
- options: {
- limit: 10000,
- name: 'media/[name]--[folder].[ext]'
- }
- },
- {
- test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
- use: {
- loader: 'url-loader',
- query: {
- limit: 10000,
- name: 'fonts/[name]--[folder].[ext]'
- }
- }
- }
- ]
- },
- node: {
- __dirname: process.env.NODE_ENV !== 'production',
- __filename: process.env.NODE_ENV !== 'production'
- },
- plugins: [
- new VueLoaderPlugin(),
- new MiniCssExtractPlugin({filename: 'styles.css'}),
- new HtmlWebpackPlugin({
- filename: 'index.html',
- template: path.resolve(__dirname, '../src/index.ejs'),
- minify: {
- collapseWhitespace: true,
- removeAttributeQuotes: true,
- removeComments: true
- },
- nodeModules: process.env.NODE_ENV !== 'production'
- ? path.resolve(__dirname, '../node_modules')
- : false
- }),
- new webpack.HotModuleReplacementPlugin(),
- new webpack.NoEmitOnErrorsPlugin()
- ],
- output: {
- filename: '[name].js',
- libraryTarget: 'commonjs2',
- path: path.join(__dirname, '../dist/electron')
- },
- resolve: {
- alias: {
- '@': path.join(__dirname, '../src/renderer'),
- 'vue$': 'vue/dist/vue.esm.js',
- 'utils': path.join(__dirname, '../src/renderer/utils'),
- '~': path.join(__dirname, '../src'),
- 'root': path.join(__dirname, '../')
- },
- extensions: ['.js', '.vue', '.json', '.css', '.node']
- },
- target: 'electron-renderer'
-}
-
-/**
- * Adjust rendererConfig for development settings
- */
-if (process.env.NODE_ENV !== 'production') {
- rendererConfig.plugins.push(
- new webpack.DefinePlugin({
- '__static': `"${path.join(__dirname, '../static').replace(/\\/g, '\\\\')}"`
- })
- )
-}
-
-/**
- * Adjust rendererConfig for production settings
- */
-if (process.env.NODE_ENV === 'production') {
- rendererConfig.devtool = ''
-
- rendererConfig.plugins.push(
- new BabiliWebpackPlugin(),
- new CopyWebpackPlugin([
- {
- from: path.join(__dirname, '../static'),
- to: path.join(__dirname, '../dist/electron/static'),
- ignore: ['.*']
- }
- ]),
- new webpack.DefinePlugin({
- 'process.env.NODE_ENV': '"production"'
- }),
- new webpack.LoaderOptionsPlugin({
- minimize: true
- })
- )
-}
-
-module.exports = rendererConfig
diff --git a/.electron-vue/webpack.web.config.js b/.electron-vue/webpack.web.config.js
deleted file mode 100644
index 010883a..0000000
--- a/.electron-vue/webpack.web.config.js
+++ /dev/null
@@ -1,139 +0,0 @@
-'use strict'
-
-process.env.BABEL_ENV = 'web'
-
-const path = require('path')
-const webpack = require('webpack')
-
-const BabiliWebpackPlugin = require('babili-webpack-plugin')
-const CopyWebpackPlugin = require('copy-webpack-plugin')
-const ExtractTextPlugin = require('extract-text-webpack-plugin')
-const HtmlWebpackPlugin = require('html-webpack-plugin')
-
-let webConfig = {
- devtool: '#cheap-module-eval-source-map',
- entry: {
- web: path.join(__dirname, '../src/renderer/main.js')
- },
- module: {
- rules: [
- {
- test: /\.(js|vue)$/,
- enforce: 'pre',
- exclude: /node_modules/,
- use: {
- loader: 'eslint-loader',
- options: {
- formatter: require('eslint-friendly-formatter')
- }
- }
- },
- {
- test: /\.css$/,
- use: ExtractTextPlugin.extract({
- fallback: 'style-loader',
- use: 'css-loader'
- })
- },
- {
- test: /\.html$/,
- use: 'vue-html-loader'
- },
- {
- test: /\.js$/,
- use: 'babel-loader',
- include: [ path.resolve(__dirname, '../src/renderer') ],
- exclude: /node_modules/
- },
- {
- test: /\.vue$/,
- use: {
- loader: 'vue-loader',
- options: {
- extractCSS: true,
- loaders: {
- sass: 'vue-style-loader!css-loader!sass-loader?indentedSyntax=1',
- scss: 'vue-style-loader!css-loader!sass-loader'
- }
- }
- }
- },
- {
- test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
- use: {
- loader: 'url-loader',
- query: {
- limit: 10000,
- name: 'imgs/[name].[ext]'
- }
- }
- },
- {
- test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
- use: {
- loader: 'url-loader',
- query: {
- limit: 10000,
- name: 'fonts/[name].[ext]'
- }
- }
- }
- ]
- },
- plugins: [
- new ExtractTextPlugin('styles.css'),
- new HtmlWebpackPlugin({
- filename: 'index.html',
- template: path.resolve(__dirname, '../src/index.ejs'),
- minify: {
- collapseWhitespace: true,
- removeAttributeQuotes: true,
- removeComments: true
- },
- nodeModules: false
- }),
- new webpack.DefinePlugin({
- 'process.env.IS_WEB': 'true'
- }),
- new webpack.HotModuleReplacementPlugin(),
- new webpack.NoEmitOnErrorsPlugin()
- ],
- output: {
- filename: '[name].js',
- path: path.join(__dirname, '../dist/web')
- },
- resolve: {
- alias: {
- '@': path.join(__dirname, '../src/renderer'),
- 'vue$': 'vue/dist/vue.esm.js'
- },
- extensions: ['.js', '.vue', '.json', '.css']
- },
- target: 'web'
-}
-
-/**
- * Adjust webConfig for production settings
- */
-if (process.env.NODE_ENV === 'production') {
- webConfig.devtool = ''
-
- webConfig.plugins.push(
- new BabiliWebpackPlugin(),
- new CopyWebpackPlugin([
- {
- from: path.join(__dirname, '../static'),
- to: path.join(__dirname, '../dist/web/static'),
- ignore: ['.*']
- }
- ]),
- new webpack.DefinePlugin({
- 'process.env.NODE_ENV': '"production"'
- }),
- new webpack.LoaderOptionsPlugin({
- minimize: true
- })
- )
-}
-
-module.exports = webConfig