[简易版] 自动化脚本

news2024/10/29 3:19:08

前言

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.coloradmin.cn/o/2225910.html

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

相关文章

实战教程:利用Docker容器化技术部署Szurubooru图像分享平台

实战教程:利用Docker容器化技术部署Szurubooru图像分享平台 一、Szurubooru介绍1.1 Szurubooru简介1.2 主要特点1.3 主要使用场景 二、本次实践规划2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker comp…

numpy——索引切片

一、索引和切片 import numpy as npx np.arange(48).reshape(6, 8) print(x)# 选取第二行 print(x[1]) #从0开始,取得第2行# 选取第二行, 第二列 print(x[1][1])# 选取第三行到最后一行, 第一列到最后一列 print(x[2:,2:])# 花式索引 (1, 1) 和 (4, 4) print(&quo…

MPP音视频总结

基础篇 1.常用图像格式介绍 常用图像像素格式 RGB 和 YUV。 1.1RGB RGB分类通常指的是将图像或颜色按照RGB(红、绿、蓝)颜色空间进行分组或分类。RGB图像格式通常包括RGB24(RGB888)、RGB32、RGBA、RGB565等。 RGB24是一种常用…

【CSS】入门详解

你是否曾经浏览网页时,被一些网站精美的布局、炫酷的动画和赏心悦目的色彩所吸引?这背后神奇的力量就是 CSS(层叠样式表)。CSS 就像网页的化妆师,它负责网页的样式和布局,让原本枯燥的 HTML 结构变得生动有…

AttributeError: module ‘pandas‘ has no attribute ‘datetime‘

今天在进行时间序列问题处理时候,发生如下报错: AttributeError: module pandas has no attribute datetime 因为在新的pands版本中pandas已不再支持datetime模块。 from datetime import datetime 需要导入datetime库。 原代码: impor…

2025选题|基于Hadoop的物品租赁系统的设计与实现

作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,…

《虚拟现实的边界:探索虚拟世界的未来可能》

内容概要 在虚拟现实(VR)技术的浪潮中,我们见证了其从实验室的奇想逐渐走向日常生活的非凡旅程。技术发展的背后是不断突破的创新,早期的设备虽然笨重,但如今却趋向精致、轻巧,用户体验显著提升。想象一下…

【MySQL】视图特性 用户管理

> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:了解什么是视图,我们又该如何管理用户。 > 毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安! >…

旧衣物回收小程序开发,线上线下相结合

当下,绿色发展是重中之重,旧衣回收作为一件利国利民的模式,在发展中深受大众欢迎。随着大众生活水平的提高,家中闲置的衣物逐年增加,这也为旧衣回收市场发展提供了广阔的发展前景,为入局者和创业者提供新的…

keepalived+web 实现双机热备

环境:利用keeplived实现web服务器的双机热备(高可用) 注意: (1) 利用keeplivedweb做双击热备(高可用),最少需要两台服务器,可以实现多域名对应一个VIP,并且访问不同域名,显示不同主页&#xf…

a50股指期货是什么意思?

首先,股指期货,顾名思义,就是以股票指数为标的的期货合约。啥是期货呢?简单来说,就是现在约定好价格,将来某个时间再交易的东西。而A50股指期货,就是以A50指数为标的的期货合约。 A50指数&…

理解UUID 无序性对数据存储的影响

文章目录 背景问题1,移动数据问题2,频繁的页分裂背景 如果以UUID为主键,对于mysql 可能存在的问题。 问题1,移动数据 从上图来看,如果UUID是随机的话,以0012,0021 这个节点来说,如果插入的是0015,相当于要把16到21的数据向后移动一个位置,如果是自增的话,只会在尾…

HarmonyOS ArkTS与C++数据类型转换

1. HarmonyOS ArkTS与C数据类型转换 本文介绍了C与TS各自数据类型与互相之间的数据类型转换,在需要使用C模块时可以快速上手对各种数据类型进行转换。 1.1. 概述 HarmonyOS的主力开发语言是ArkTS,也提供了C语言的支持,对于一些能力&#xff…

Docker:容器

Docker:容器 容器容器命令docker psdocker createdocker startdocker rundocker logsdocker execdocker stopdocker restartdocekr rmdocker killdocker pausedocker unpausedocker commitdocker cpdocker diffdocker exportdocker importdocker renamedocker stats…

Es环境搭建 ▎kibana组件 ▎ik分词器 ▎idea继承Es ▎idea中Es操作

目录 安装Es 安装Es可视化界面(elasticsearch-head) elasticsearch-head安装: 安装可视化Kibana组件 汉化kibana ​编辑 启动服务器: 安装ik分词器插件 Idea继承Es 索引库操作 文档操作 安装Es Es下载地址: ES下载地址https://www.elastic.co/cn/downloads/elasticsea…

苏州金龙技术创新赋能旅游新质生产力

2024年10月23日,备受瞩目的“2024第六届旅游出行大会”在云南省丽江市正式开幕。作为客车行业新质生产力标杆客车,苏州金龙在大会期间现场展示了新V系V12商旅版、V11和V8E纯电车型,为旅游出行提供全新升级方案。 其中,全新15座V1…

SpringBoot3集成Swagger接口文档功能、接口排序以及如何设置接口页面的title/keyword/description?

一、SpringBoot3集成Swagger接口文档功能 在SpringBoot3 中集成 Swagger 接口文档,如果按照网上的很多提示,会有些问题。在这个过程中我就遇到报错: Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServletRequest 因…

总裁主题CeoMax-Pro主题7.6开心版

激活方式: 1.授权接口源码ceotheme-auth-api.zip搭建一个站点,绑定www.ceotheme.com域名,并配置任意一个域名的 SSL 证书。 2.在 hosts 中添加:127.0.0.1 www.ceotheme.com 3.上传class-wp-http.php到wp-includes目录&#xff…

Rust命令行,实现自动反编译Android APK包工具

Rust-CLI实现自动反编译APK Rust提供了比较好的CLI接口,可以快速的编写命令行应用, 用于日常的工具类使用。 分享一个用Rust命令行实现自动反编译Android APK包工具,是之前学习Rust写的一个练手小工具,可以快速反编译APK,同时也学习下用Rust…

Flutter升级与降级

升级 版本升级 // 升级到指定版本flutter upgrade 版本号// 升级到最新版本flutter upgrade 降级 1.需要先确定想要降级的版本号。 2.切换到系统安装Flutter的目录 3.在https://github.com/flutter/flutter,找到要回退的版本号对应的commit序号(具…