当前位置: 首页 > news >正文

[简易版] 自动化脚本

前言

uniapp cli项目中没办法自动化打开微信开发者工具,需要手动打开比较繁琐,故此自动化脚本就诞生啦~

实现

const spawn = require("cross-spawn");
const chalk = require("picocolors");
const dayjs = require("dayjs");
const base = process.cwd();
const { TOOL } = process.env;const toolPath = {weixin: "xx/微信web开发者工具",
};
let projectPaths = {weixin: `${base}/dist/dev/mp-weixin`,
};
const cwd = toolPath[TOOL];
const projectPath = projectPaths[TOOL];
let isCorrect = !!cwd;const openTool = () => {if (TOOL === "weixin") {console.log(chalk.cyan("正在打开微信开发者工具"),chalk.yellowBright(`当前时间:${getCurrentDate()}`));}if (isCorrect) {spawn("cli", ["open", "--project", projectPath], {cwd,stdio: "inherit",}).on("error", (error) => {console.log("error", error);});} else {console.log(chalk.red("未找到任何开发者工具"));}
};const getCurrentDate = () => {return dayjs().format("YYYY-MM-DD HH:mm:ss");
};openTool();

效果

成功

失败

工具库

cross-spawn

简介

  • cross-spawn是一个用于在 Node.js 中跨平台(如 Windows、Linux、macOS 等)生成子进程的库。它是child_process模块的一个包装,解决了在不同操作系统上执行外部命令可能出现的兼容性问题。
  • 在 Node.js 的原生child_process模块中,虽然提供了强大的功能来创建和管理子进程,但在不同操作系统上,命令的执行方式和一些参数的处理可能会有所不同。例如,在 Windows 上,命令的路径和参数的分隔方式与 Unix - like 系统(如 Linux 和 macOS)有所区别。cross-spawn则提供了一种统一的方式来处理这些差异。

dayjs

简介

Day.js 是一个轻量级的 JavaScript 日期处理库

基础使用

  • 使用format方法来格式化日期。常见的格式化字符包括YYYY(四位数的年份)、MM(两位数的月份)、DD(两位数的日期)、HH(24 小时制的小时数)、mm(分钟数)、ss(秒数)等。
  • 示例:const formattedDate = dayjs().format("YYYY-MM-DD HH:mm:ss");,这个命令会将当前日期和时间格式化为年-月-日 时:分:秒的形式。
  • 利用subtract方法减去时间。比如,获取当前日期往前推 1 个月的日期:const oneMonthBefore = dayjs().subtract(1, "month");,这里的参数含义和add方法类似。

picocolors

简介

picocolors是一个用于在 Node.js(也可以用于浏览器环境)中进行彩色文本输出的轻量级库。它提供了一种简单的方式来为终端中的文本添加颜色和样式。

应用场景

  • 命令行工具开发:当开发命令行工具时,使用picocolors可以让输出的信息更加直观。例如,一个文件处理的命令行工具,可以用绿色显示成功处理的文件数量,用红色显示处理过程中出现错误的文件。
  • 日志系统:在日志输出中,根据日志的级别(如INFOWARNERROR)可以使用不同的颜色。例如,INFO级别的日志可以用蓝色输出,WARN级别的日志用黄色输出,ERROR级别的日志用红色输出,这样可以让开发者快速区分不同级别的日志内容。

最后

同理,也可以添加其他开发者工具~


http://www.mrgr.cn/news/60786.html

相关文章:

  • 高级SQL技巧:提升数据查询与分析能力的关键
  • 在培训班学网络安全有用吗
  • html之文字,图片,链接,音视频
  • 2020重新出发,MySql基础,MySql数据库备份与恢复
  • 【JavaEE】【多线程】线程池
  • data_table_2 与 flutter 官方 DataTable 的区别
  • 自动化测试用例如何编写
  • CSS - 保姆级面试基础扫盲版本一
  • ChatGPT 4.0 功能竟然如此强大!
  • 基于Spring Boot+Unipp的校园志愿者小程序(图形化分析)
  • 动态规划 —— 路径问题-不同路径
  • shiro(会话管理Session Management,加密Cryptography)
  • 大语言模型驱动的跨域属性级情感分析——论文阅读笔记
  • Zone Transfer详解
  • UG/NX 安装
  • 【设计模式系列】适配器模式(九)
  • HarmonyOS项目开发一多简介
  • 十五、智能指针
  • 线程的理解及基本操作
  • 一些待机电流波形特征
  • C#与C++互操作时的数据类型对应
  • 00 嵌入式知识-目录篇
  • 以通俗易懂的仓库来讲解JVM内存模型
  • C++ 中的可调用对象
  • 一文学会Matrix类的用法
  • 循环神经网络(Recurrent Neural Network,RNN)