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",
"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",
"license": "ISC",
"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 * as electron from "electron"
import { main } from "../../package.json"
import { electronLog } from "../log"
export function devElectron() {
return new Promise((resolve, reject) => {
@ -11,8 +12,11 @@ export function devElectron() {
// env: Object.assign(process.env, { NODE_ENV: argv.env }),
})
if (electronProcess) {
electronProcess.stderr.on("data", data => {
electronLog(`${data}`, "red")
})
electronProcess.stdout.on("data", data => {
console.log(`${data}`)
electronLog(`${data}`, "yellow")
})
resolve(electronProcess)
} else {

8
script/code/runVite.ts

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

6
script/dev-runner.ts

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

8
script/log.ts

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

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

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

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

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

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

@ -1,7 +1,7 @@
import React from "react"
import style from "./index.module.scss"
import { useLocation, Route, Switch, useHistory } from "react-router-dom"
import html from "./a.md"
// import html from "./a.md"
function Test() {
return <div>test</div>
@ -20,7 +20,7 @@ export default function About(props: any) {
return (
<div className={`container ${style.about}`}>
<div className={"bp3-running-text bp3-text-large"}>
{html}
{/* {html} */}
</div>
{/*<div onClick={() =>back()}>阿萨 阿松大asdasd</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: "添加闹钟",
text: "关于"
},
{
path: "/float",
icon: "mugshot",
title: "浮动框测试",
text: "浮动"
},
]
return (

3
vite.config.ts

@ -2,7 +2,7 @@ import { defineConfig } from "vite"
import reactRefresh from "@vitejs/plugin-react-refresh"
// import WindiCSS from "vite-plugin-windicss"
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 replace from '@rollup/plugin-replace';
import md from './plugins/md';
@ -12,6 +12,7 @@ let isDev = process.env.NODE_ENV === "development"
let plugins = []
let staticPath = isDev? '/static': 'static'
plugins.push(
// electron(),
md(),
replace({
preventAssignment: true,

Loading…
Cancel
Save