electron使用nodejs跨平台开发兼容问题整理
1 import path from 'path' 2 import os from 'os' 3 import { app} from 'electron' 4 5 // 获取应用安装根路径 6 // windows平台 7 let appPath = ''; 8 appPath = path.resolve(); 9 // linux|os平台 10 appPath = path.join(app.getAppPath(), '../', '../');
const label = ['home', 'appData', 'userData', 'temp', 'exe']
app.getPath(name) 11 12 // 获取平台类型 13 const osType = os.type() | process.platform; 14 15 // 获取用户目录 16 const userDir = os.homedir(); 17 18 // windows和linux,os在路径分隔符上是不同的,在编码中不能写硬编码‘\’或者'/'这样都是不可取的,尤其是跨平台开发一定不兼容 19 // node path模块可以帮助我们轻松解决,例如我们要访问用户目录下的jdk文件夹,可以这样写 20 const folderPath = path.join(os.homedir(),'jdk'); 21 // 这样无论是任何平台路径都能正确 22 // 以此为根基,可以封装一下获取路径的方法 23 function getFolderPath(path: string) { 24 return path.join(path) 25 } 26 // 打开文件在硬盘中的目录 27 // windows可以借助node‘child_process’模块,执行dos命令 28 START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] 29 [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL] 30 [/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B] 31 [command/program] [parameters] 32 33 "title" 在窗口标题栏中显示的标题。 34 path 启动目录。 35 B 启动应用程序,但不创建新窗口。 36 应用程序已忽略 ^C 处理。除非应用程序 37 启用 ^C 处理,否则 ^Break 是唯一可以中断 38 该应用程序的方式。 39 I 新的环境将是传递 40 给 cmd.exe 的原始环境,而不是当前环境。 41 MIN 以最小化方式启动窗口。 42 MAX 以最大化方式启动窗口。 43 SEPARATE 在单独的内存空间中启动 16 位 Windows 程序。 44 SHARED 在共享内存空间中启动 16 位 Windows 程序。 45 LOW 在 IDLE 优先级类中启动应用程序。 46 NORMAL 在 NORMAL 优先级类中启动应用程序。 47 HIGH 在 HIGH 优先级类中启动应用程序。 48 REALTIME 在 REALTIME 优先级类中启动应用程序。 49 ABOVENORMAL 在 ABOVENORMAL 优先级类中启动应用程序。 50 BELOWNORMAL 在 BELOWNORMAL 优先级类中启动应用程序。 51 NODE 将首选非一致性内存结构(NUMA)节点指定为 52 十进制整数。 53 AFFINITY 将处理器关联掩码指定为十六进制数字。 54 // linux及其他平台则需要借助各自平台的模块打开目录
好记性,不如烂笔头,记录工作所得
浙公网安备 33010602011771号