1549469775 4 years ago
parent
commit
afde655ec0
  1. 34
      dist/package-lock.json
  2. 4
      dist/package.json
  3. 6
      script/code/runElectron.ts
  4. 8
      script/code/runVite.ts
  5. 6
      script/dev-runner.ts
  6. 8
      script/log.ts
  7. 78
      script/webpack/runMain.js
  8. 11
      src/main/facilities/clock/index.ts
  9. 4
      src/render/plugins/electron/index.ts
  10. 4
      src/render/views/About/index.tsx
  11. 6
      src/render/views/Layout/index.tsx
  12. 3
      vite.config.ts

34
dist/package-lock.json

@ -1,5 +1,37 @@
{ {
"name": "my-electron-app", "name": "my-electron-app",
"version": "1.0.0", "version": "1.0.0",
"lockfileVersion": 1 "lockfileVersion": 1,
"requires": true,
"dependencies": {
"fs-extra": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
"integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
"requires": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
}
},
"graceful-fs": {
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
"integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
},
"jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"requires": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
}
},
"universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
}
}
} }

4
dist/package.json

@ -8,5 +8,7 @@
"author": "TopOne", "author": "TopOne",
"license": "ISC", "license": "ISC",
"devDependencies": {}, "devDependencies": {},
"dependencies": {} "dependencies": {
"fs-extra": "^10.0.0"
}
} }

6
script/code/runElectron.ts

@ -3,6 +3,7 @@ import { exec, spawn, ChildProcess } from "child_process"
import { join } from "path" import { join } from "path"
import * as electron from "electron" import * as electron from "electron"
import { main } from "../../package.json" import { main } from "../../package.json"
import { electronLog } from "../log"
export function devElectron() { export function devElectron() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@ -11,8 +12,11 @@ export function devElectron() {
// env: Object.assign(process.env, { NODE_ENV: argv.env }), // env: Object.assign(process.env, { NODE_ENV: argv.env }),
}) })
if (electronProcess) { if (electronProcess) {
electronProcess.stderr.on("data", data => {
electronLog(`${data}`, "red")
})
electronProcess.stdout.on("data", data => { electronProcess.stdout.on("data", data => {
console.log(`${data}`) electronLog(`${data}`, "yellow")
}) })
resolve(electronProcess) resolve(electronProcess)
} else { } else {

8
script/code/runVite.ts

@ -1,6 +1,7 @@
// @ts-nocheck // @ts-nocheck
import { exec, spawn, ChildProcess } from "child_process" import { exec, spawn, ChildProcess } from "child_process"
import { join } from "path" import { join } from "path"
import {logStats} from "../log"
export function devVite() { export function devVite() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@ -10,20 +11,23 @@ export function devVite() {
}) })
if (viteProcess) { if (viteProcess) {
let isReady = false let isReady = false
let str = ""
viteProcess.stdout.on("data", data => { viteProcess.stdout.on("data", data => {
str+=data
console.log(`${data}`) console.log(`${data}`)
if (!isReady && data.indexOf("ready") != -1) { if (!isReady && data.indexOf("ready") != -1) {
logStats("vite", str)
resolve(viteProcess) resolve(viteProcess)
} }
}) })
viteProcess.stderr.on("data", data => { viteProcess.stderr.on("data", data => {
console.error(`[vite err]: ${data}`) logStats("vite err", data)
reject() reject()
}) })
viteProcess.on("close", code => { viteProcess.on("close", code => {
console.log(`[vite close]: exited with code ${code}`) logStats("vite close", code)
reject() reject()
}) })
} else { } else {

6
script/dev-runner.ts

@ -2,7 +2,7 @@
import * as chalk from "chalk" import * as chalk from "chalk"
import { devVite } from "./code/runVite" import { devVite } from "./code/runVite"
import { devElectron } from "./code/runElectron" import { devElectron } from "./code/runElectron"
import {logStats,electronLog} from "./log"
import { ChildProcess } from "child_process" import { ChildProcess } from "child_process"
import { watch } from "rollup" import { watch } from "rollup"
import options from "./rollup.config" import options from "./rollup.config"
@ -10,7 +10,7 @@ const { startMain } = require("./webpack/runMain")
;(async () => { ;(async () => {
let vitePorcess = await devVite() let vitePorcess = await devVite()
console.log("[vite]", chalk.green(`vite ready.`)) logStats("vite","vite ready.")
let child: ChildProcess | null let child: ChildProcess | null
let manualRestart = false let manualRestart = false
@ -25,7 +25,7 @@ const { startMain } = require("./webpack/runMain")
} }
try { try {
child = await devElectron() child = await devElectron()
console.log("[electron]", chalk.green(`electron ready.`)) electronLog("electron ready.","green")
child.on("close", () => { child.on("close", () => {
if (!manualRestart) { if (!manualRestart) {
// https://juejin.cn/post/6844904071682326535 // https://juejin.cn/post/6844904071682326535

8
script/log.ts

@ -1,7 +1,7 @@
const { say } = require("cfonts") const { say } = require("cfonts")
const chalk = require("chalk") const chalk = require("chalk")
export function logStats(proc, data) { export function logStats(proc:any, data:any) {
let log = "" let log = ""
log += chalk.yellow.bold(`${proc} Process ${new Array(19 - proc.length + 1).join("-")}`) log += chalk.yellow.bold(`${proc} Process ${new Array(19 - proc.length + 1).join("-")}`)
@ -14,7 +14,7 @@ export function logStats(proc, data) {
chunks: false, chunks: false,
}) })
.split(/\r?\n/) .split(/\r?\n/)
.forEach(line => { .forEach((line:any) => {
log += " " + line + "\n" log += " " + line + "\n"
}) })
} else { } else {
@ -26,10 +26,10 @@ export function logStats(proc, data) {
console.log(log) console.log(log)
} }
export function electronLog(data, color) { export function electronLog(data:any, color:any) {
let log = "" let log = ""
data = data.toString().split(/\r?\n/) data = data.toString().split(/\r?\n/)
data.forEach(line => { data.forEach((line:any) => {
log += ` ${line}\n` log += ` ${line}\n`
}) })
if (/[0-9A-z]+/.test(log)) { if (/[0-9A-z]+/.test(log)) {

78
script/webpack/runMain.js

@ -6,7 +6,6 @@ const { spawn } = require('child_process')
const webpack = require('webpack') const webpack = require('webpack')
// const WebpackDevServer = require('webpack-dev-server') // const WebpackDevServer = require('webpack-dev-server')
// const webpackHotMiddleware = require('webpack-hot-middleware') // const webpackHotMiddleware = require('webpack-hot-middleware')
const mainConfig = require('./webpack.main.config') const mainConfig = require('./webpack.main.config')
// const rendererConfig = require('./webpack.renderer.config') // const rendererConfig = require('./webpack.renderer.config')
@ -14,24 +13,27 @@ let electronProcess = null
let manualRestart = false let manualRestart = false
// let hotMiddleware // let hotMiddleware
function logStats (proc, data) { function logStats(proc, data) {
let log = '' let log = ""
log += chalk.yellow.bold(`${proc} Process ${new Array((19 - proc.length) + 1).join('-')}`) log += chalk.yellow.bold(`${proc} Process ${new Array(19 - proc.length + 1).join("-")}`)
log += '\n\n' log += "\n\n"
if (typeof data === 'object') { if (typeof data === "object") {
data.toString({ data
colors: true, .toString({
chunks: false colors: true,
}).split(/\r?\n/).forEach(line => { chunks: false,
log += ' ' + line + '\n' })
}) .split(/\r?\n/)
.forEach((line) => {
log += " " + line + "\n"
})
} else { } else {
log += ` ${data}\n` log += ` ${data}\n`
} }
log += '\n' + chalk.yellow.bold(`${new Array(28 + 1).join('-')}`) + '\n' log += "\n" + chalk.yellow.bold(`${new Array(28 + 1).join("-")}`) + "\n"
console.log(log) console.log(log)
} }
@ -40,8 +42,10 @@ function buildMain () {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
mainConfig.mode = 'production' mainConfig.mode = 'production'
webpack(mainConfig, (err, stats) => { webpack(mainConfig, (err, stats) => {
if (err) reject(err.stack || err) if (err) {
else if (stats.hasErrors()) { logStats('Main', chalk.red.bold(err))
reject(err.stack || err)
}else if (stats.hasErrors()) {
let err = '' let err = ''
stats.toString({ stats.toString({
chunks: false, chunks: false,
@ -51,7 +55,7 @@ function buildMain () {
.forEach(line => { .forEach(line => {
err += ` ${line}\n` err += ` ${line}\n`
}) })
logStats('Main', chalk.red.bold(err))
reject(err) reject(err)
} }
else { else {
@ -77,7 +81,7 @@ function startMain (callback) {
compiler.watch({}, (err, stats) => { compiler.watch({}, (err, stats) => {
if (err) { if (err) {
console.log(err) logStats('Main', chalk.red.bold(err))
return return
} }
@ -95,42 +99,6 @@ module.exports = {
} }
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 () { // function init () {
// greeting() // greeting()
// startMain() // startMain()

11
src/main/facilities/clock/index.ts

@ -5,12 +5,11 @@ import path from "path"
const homeDir = require("os").homedir() const homeDir = require("os").homedir()
const clockJsonPath = path.resolve(homeDir, ".forceClock/clock.json") const clockJsonPath = path.resolve(homeDir, ".forceClock/clock.json")
fs.ensureFileSync(clockJsonPath) fs.ensureFileSync(clockJsonPath)
try {
try { console.log("--->",fs.readJSONSync(clockJsonPath))
console.log(fs.readJSONSync(clockJsonPath)) // const job = schedule.scheduleJob('42 * * * *', function(){
const job = schedule.scheduleJob('42 * * * *', function(){ // console.log('The answer to life, the universe, and everything!');
console.log('The answer to life, the universe, and everything!'); // });
});
} catch (e) { } catch (e) {
console.log(e) console.log(e)
// 读取JSON文件失败 // 读取JSON文件失败

4
src/render/plugins/electron/index.ts

@ -1,6 +1,4 @@
const electron = require("electron") // 只能用require ,而且不能用那个import转require的插件,否则样式懒加载样式打包有问题
const electron = require("electron") // 只能用require
export default electron export default electron

4
src/render/views/About/index.tsx

@ -1,7 +1,7 @@
import React from "react" import React from "react"
import style from "./index.module.scss" import style from "./index.module.scss"
import { useLocation, Route, Switch, useHistory } from "react-router-dom" import { useLocation, Route, Switch, useHistory } from "react-router-dom"
import html from "./a.md" // import html from "./a.md"
function Test() { function Test() {
return <div>test</div> return <div>test</div>
@ -20,7 +20,7 @@ export default function About(props: any) {
return ( return (
<div className={`container ${style.about}`}> <div className={`container ${style.about}`}>
<div className={"bp3-running-text bp3-text-large"}> <div className={"bp3-running-text bp3-text-large"}>
{html} {/* {html} */}
</div> </div>
{/*<div onClick={() =>back()}>阿萨 阿松大asdasd</div>*/} {/*<div onClick={() =>back()}>阿萨 阿松大asdasd</div>*/}
{/*<div>22{props.children}{location.href}</div>*/} {/*<div>22{props.children}{location.href}</div>*/}

6
src/render/views/Layout/index.tsx

@ -34,6 +34,12 @@ export default function Layout(props: any) {
title: "添加闹钟", title: "添加闹钟",
text: "关于" text: "关于"
}, },
{
path: "/float",
icon: "mugshot",
title: "浮动框测试",
text: "浮动"
},
] ]
return ( return (

3
vite.config.ts

@ -2,7 +2,7 @@ import { defineConfig } from "vite"
import reactRefresh from "@vitejs/plugin-react-refresh" import reactRefresh from "@vitejs/plugin-react-refresh"
// import WindiCSS from "vite-plugin-windicss" // import WindiCSS from "vite-plugin-windicss"
const { resolve, join } = require("path") const { resolve, join } = require("path")
import electron from "vitejs-plugin-electron" // import electron from "vitejs-plugin-electron"
import { minifyHtml, injectHtml } from "vite-plugin-html" import { minifyHtml, injectHtml } from "vite-plugin-html"
import replace from '@rollup/plugin-replace'; import replace from '@rollup/plugin-replace';
import md from './plugins/md'; import md from './plugins/md';
@ -12,6 +12,7 @@ let isDev = process.env.NODE_ENV === "development"
let plugins = [] let plugins = []
let staticPath = isDev? '/static': 'static' let staticPath = isDev? '/static': 'static'
plugins.push( plugins.push(
// electron(),
md(), md(),
replace({ replace({
preventAssignment: true, preventAssignment: true,

Loading…
Cancel
Save