[简易版] 自动化脚本

前言

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.mzph.cn/web/57075.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛客网刷题(1)(java之数据类型、数组的创建(静态/动态初始化)、static关键字与静态属性和方法、常用的servlet包、面向对象程序设计方法优点)

目录 一、Java变量的数据类型。 <1>Java中变量的数据类型。 <2>基本数据类型。 <3>引用数据类型。 二、Java中一维数组的初始化。&#xff08;静态、动态初始化&#xff09; <1>数组。 <2>动态初始化。 <3>静态初始化。 三、看清代码后&am…

Cesium基础-(Entity)-(Billboard)

里边包含Vue、React框架代码 2、Billboard 广告牌 Cesium中的Billboard是一种用于在3D场景中添加图像标签的简单方式。Billboard提供了一种方法来显示定向的2D图像,这些图像通常用于表示简单的标记、符号或图标。以下是对Billboard的详细解读: 1. Billboard的定义和特性 B…

模型训练识别手写数字(一)

一、模型训练数据集 1. 导入所需库 import numpy as np from sklearn.datasets import fetch_openmlnumpy 是用于数值计算的库。 fetch_openml 是用于从 OpenML 下载数据集的函数。 2. 获取 MNIST 数据集 X, y fetch_openml(mnist_784, version1, return_X_yTrue)fetch_ope…

揭开MySQL并发中的“死锁”之谜:从原理到解决方案的深度解析

目录 1. 环境准备&#xff1a;创建“账户”和“标记”表1.1 创建 dl_account_t 表1.2 创建 dl_mark_t 表 2. 死锁详解2.1 死锁情景一&#xff1a;相反加锁顺序导致的死锁2.2 死锁情景二&#xff1a;唯一索引冲突引发的死锁 3. 事务隔离级别与锁机制4. 预防与解决死锁的方法4.1 …

centos源码升级glibc2.19时遇到的错误

基本安装步骤 wget http://mirrors.ustc.edu.cn/gnu/libc/glibc-2.19.tar.gz tar -zvxf glibc-2.19.tar.gz cd glibc-2.19 mkdir build cd build ../configure --prefix/usr --enable-profile --enable-add-ons --with-headers/usr/include --with-binutils/usr/bin在configu…

在基于go开发的web应用中加入Nginx反向代理

文章目录 学习笔记-Nginx0. Nginx介绍1. Nginx下载安装2. 启动web服务和Nginx配置2.1 启动服务2.2 Nginx配置 3. 测试4. 扩展 学习笔记-Nginx 在查阅资料时发现&#xff0c;很少有人介绍怎么在golang中使用nginx&#xff0c;为此&#xff0c;我们选择写一篇简单的&#xff0c;…

LeetCode算法(双指针)

今天的题目主要都是力扣前100中&#xff0c;关于双指针的题 1.移动零 链接&#xff1a;移动零 示例&#xff1a; 示例 : 输入: nums [0,1,0,3,12] 输出&#xff1a;[1,3,12,0,0] 可以看到保持原有元素的顺序&#xff0c;将所有的0&#xff0c;移动到数组最后方即可。 这…

【论文写作】10.26 讨论

本次讨论主要是对方向的修正&#xff0c;以及一些科研素养的补足 一、关于方向 方案 波分离开了&#xff0c;可以分别喂给不同的网络&#xff0c;最后将不同的结果融合。观察结果&#xff0c;获得直观的估计&#xff0c;猜测可能的优化方案。 对于第二点的解释&#xff0c;在…

开源项目工具:LeanTween - 为Unity 3D打造的高效缓动引擎详解(比较麻烦的API版)

1.LeanTween.reset() 一、工具介绍 参考&#xff1a;推荐开源项目&#xff1a;LeanTween - 为Unity 3D打造的高效缓动引擎-CSDN博客 LeanTween是一个专为Unity 3D引擎设计的高效缓动&#xff08;tweening&#xff09;库&#xff0c;它提供了简单易用的API&#xff0c;帮助开…

ctfshow(175->178)--SQL注入--联合注入及其过滤

Web175 进入界面&#xff1a; 审计&#xff1a; 查询语句&#xff1a; $sql "select username,password from ctfshow_user5 where username !flag and id ".$_GET[id]." limit 1;";返回逻辑&#xff1a; if(!preg_match(/[\x00-\x7f]/i, json_enc…

数据结构(8.4_3)——堆的插入删除

在堆中插入新元素 在堆中删除元素 总结&#xff1a;

Linux:权限的深度解析(小白必看!!!)

文章目录 前言一、Linux重要的几个热键二、关机三、扩展命令总结四、shell命令以及运行原理感性理解五、Linux权限的概念1. 权限的概念2. 认识人&#xff08;用户&#xff09;1&#xff09;创建人2&#xff09;人分类3&#xff09;人切换4&#xff09;指令提权 3. ll下文件的权…

《学会提问》

只要他们使说出口的话听起来显得信誓旦旦&#xff0c;你就极有可能会相信他们的说法 我们倾听他们&#xff0c;是为了构建出自己的答案&#xff0c;而不是听了他们的话以后&#xff0c;马上就按他们说的去做&#xff0c;就好像自己是只无助的羔羊&#xff0c;或者是个牵线的木…

一些待机电流波形特征

一、待机电流波形 最干净的待机电流波形应该只有paging&#xff0c;不过需要注意2点&#xff1a; 每个paging的间隔&#xff0c;不同网络可能不一样&#xff0c;有可能是320ms, 640ms 待机网络 paging 间隔 1分钟的耗电量 单个耗电量 单个待机电流 单个波形时长 4G 64…

二十三、Python基础语法(包)

包(package)&#xff1a;包是一种组织代码的方式&#xff0c;可以将相关的模块组合在一起&#xff0c;以便更好地管理和重用代码&#xff0c;包的目录中有一个特殊代码文件__init__.py&#xff0c;包的命名也要遵循标识符的规则。 一、包的结构 一个 Python 包通常是一个包含…

NLTK无法下载?

以下内容仅为当前认识&#xff0c;可能有不足之处&#xff0c;欢迎讨论&#xff01; 文章目录 nltk无法下载怎么办&#xff1f;什么是NLTK&#xff1f;为什么要用NLTK&#xff1f;如何下载&#xff1f; nltk无法下载怎么办&#xff1f; 什么是NLTK&#xff1f; NLTK是学习自然…

python项目实战——多协程下载美女图片

协程 文章目录 协程协程的优劣势什么是IO密集型任务特点示例与 CPU 密集型任务的对比处理 I/O 密集型任务的方式总结 创建并使用协程asyncio模块 创建协程函数运行协程函数asyncio.run(main())aiohttp模块调用aiohttp模块步骤 aiofiles————协程异步函数遇到的问题一 await …

代码随想录跟练21天——LeetCode332.重新安排行程, 51. N皇后,37. 解数独

332.重新安排行程 力扣题目链接(opens new window) 给定一个机票的字符串二维数组 [from, to]&#xff0c;子数组中的两个成员分别表示飞机出发和降落的机场地点&#xff0c;对该行程进行重新规划排序。所有这些机票都属于一个从 JFK&#xff08;肯尼迪国际机场&#xff09;出…

3、java if流程控制、while循环语句

目录 选择流程控制语句循环流程控制语句控制循环语句顺序结构If语句Switch语句For循环While循环Do-While循环控制跳转语句1. 选择流程控制语句 引入话题 想象一下,你正在过马路,你需要先检查是否有车辆经过。如果没有车辆,你才会过马路。这种先判断条件再执行动作的过程,…

【Python可视化系列】一文教你绘制双Y轴的双折线图(案例+源码)

这是我的第369篇原创文章。 一、引言 在日常工作和学习中&#xff0c;我们会遇到将两个折线画在一张图上的情况&#xff0c;且这两个折线代表了两个特征&#xff0c;具有不同的涵义和量纲表示&#xff0c;这时候我们就需要绘制一个双Y轴折线图&#xff0c;一边代表一个特征&…