no message

This commit is contained in:
kuaifan 2021-07-08 20:50:09 +08:00
parent 6ee6440f04
commit 5ff0ffbea4
4 changed files with 150 additions and 22 deletions

9
electron/.gitignore vendored
View File

@ -1,3 +1,8 @@
node_modules
public
node_modules/
public/
package-lock.json
out/
.native

View File

@ -1,6 +1,9 @@
const fs = require('fs');
const path = require('path')
const package = require('./package.json')
const inquirer = require('inquirer');
const child_process = require('child_process');
const config = require('./package.json')
const argv = process.argv;
// 删除
function deleteFile(path) {
@ -82,11 +85,45 @@ function copyDir(srcDir, tarDir, cb) {
}
}
// 给地址加上前后
function formatUrl(str) {
let url;
if (str.substring(0, 7) === "http://" ||
str.substring(0, 8) === "https://") {
url = str.trim();
} else {
url = "http://" + str.trim();
}
if (url.substring(url.length - 1) != "/") {
url+= "/"
}
return url;
}
// 运行命令
function exec(command, quiet) {
return new Promise((resolve, reject) => {
try {
let child = child_process.exec(command, {encoding: 'utf8'}, () => {
resolve();
});
if (!quiet) {
child.stdout.pipe(process.stdout);
}
child.stderr.pipe(process.stderr);
} catch (e) {
console.error('execute command failed :', command);
reject(e);
}
})
}
/** ***************************************************************************************************/
/** ***************************************************************************************************/
/** ***************************************************************************************************/
const electronDir = path.resolve("electron/public");
const electronDir = path.resolve(__dirname, "public");
const nativeCachePath = path.resolve(__dirname, ".native");
if (fs.existsSync(electronDir)) {
deleteFile(electronDir);
}
@ -98,14 +135,62 @@ fs.mkdirSync(electronDir);
'images',
'js',
].forEach(function (item) {
copyDir(path.resolve("public/" + item), electronDir + "/" + item)
copyDir(path.resolve(__dirname, "../public", item), electronDir + "/" + item)
})
copyFile(path.resolve("electron/index.html"), electronDir + "/index.html")
copyFile(path.resolve(__dirname, "index.html"), electronDir + "/index.html")
const questions = [
{
type: 'input',
name: 'targetUrl',
message: "请输入网站地址",
default: () => {
if (fs.existsSync(nativeCachePath)) {
return fs.readFileSync(nativeCachePath, 'utf8');
}
return undefined;
},
validate: function (value) {
return value !== ''
}
}, {
type: 'list',
name: 'platform',
message: "选择操作系统平台",
choices: [{
name: "MacOS Intel",
value: {
platform: 'mac',
arch: 'x64',
}
}, {
name: "MacOS Arm64",
value: {
platform: 'mac',
arch: 'arm64',
}
}, {
name: "Window x86_64",
value: {
platform: 'windows',
arch: 'x64',
}
}]
}
];
inquirer.prompt(questions).then(answers => {
let data = `window.systemInformation = {
version: "${config.version}",
origin: "./",
apiUrl: "${formatUrl(answers.targetUrl)}api/"
}`;
fs.writeFileSync(nativeCachePath, formatUrl(answers.targetUrl));
fs.writeFileSync(electronDir + "/config.js", data, 'utf8');
exec("cd electron && npm run " + (argv[2] || "start")).then(r => {})
});
fs.writeFileSync(electronDir + "/config.js", `window.systemInformation = {
version: "${package.version}",
origin: "./",
apiUrl: "http://127.0.0.1:2222/api/"
}`, 'utf8');

View File

@ -1,13 +1,50 @@
{
"name": "DooTask-App",
"version": "1.0.0",
"description": "DooTask is task management system.",
"main": "main.js",
"license": "MIT",
"scripts": {
"start": "electron ."
},
"devDependencies": {
"electron": "^13.1.6"
"name": "DooTask-App",
"version": "1.0.0",
"description": "DooTask is task management system.",
"main": "main.js",
"license": "MIT",
"scripts": {
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make"
},
"devDependencies": {
"@electron-forge/cli": "^6.0.0-beta.57",
"@electron-forge/maker-deb": "^6.0.0-beta.57",
"@electron-forge/maker-rpm": "^6.0.0-beta.57",
"@electron-forge/maker-squirrel": "^6.0.0-beta.57",
"@electron-forge/maker-zip": "^6.0.0-beta.57",
"electron": "^13.1.6"
},
"dependencies": {
"electron-squirrel-startup": "^1.0.0"
},
"config": {
"forge": {
"packagerConfig": {},
"makers": [
{
"name": "@electron-forge/maker-squirrel",
"config": {
"name": "DooTask_App"
}
},
{
"name": "@electron-forge/maker-zip",
"platforms": [
"darwin"
]
},
{
"name": "@electron-forge/maker-deb",
"config": {}
},
{
"name": "@electron-forge/maker-rpm",
"config": {}
}
]
}
}
}

View File

@ -11,7 +11,8 @@
"prod": "npm run production",
"production": "mix --production",
"version": "node ./version.js",
"native": "node ./native.js"
"electron-start": "node ./electron/index.js start",
"electron-make": "node ./electron/index.js make"
},
"devDependencies": {
"axios": "^0.21",