package中添加一条命令,用来自动选择包管理器进行依赖安装

package中添加一条命令,用来自动选择包管理器进行依赖安装

前提: 当前项目为vite项目,所以直接使用import导入模块

package.json中的scripts添加

"scripts": {"start": "node scripts/init.js"...},

文件目录为
在这里插入图片描述

init.js的文件为

import { execSync } from "child_process"
import chalk from "chalk"
const moduleUitls = ["pnpm", "yarn", "npm"]
const leng = moduleUitls.lengthfor (let index = 0; index < leng; index++) {const element = moduleUitls[index]try {const getOutPut = execSync(`${element} -v`)console.log(123123)console.log(chalk.green(`${element} 的版本是: `),chalk.bgBlue(`${getOutPut}`))console.log(chalk.yellow("开始安装依赖: "))execSync(`${element} install`, { stdio: "inherit" })console.log(chalk.yellow("依赖安装完成!!!!"))break} catch (error) {console.log(chalk.red(`${element}可能有问题, 开始使用其他包管理器`))if (index === leng - 1) {// 说明所有包管理器都有问题console.log(chalk.red(`${moduleUitls.join(",")}可能都有问题`))}}
}

说明

child_process"官网地址

Node.js 中 child_process 模块的 execSync 方法用于同步执行 shell 命令。
execSync 方法的主要特征和用法如下:

  1. 同步执行命令,会阻塞 Node.js 事件循环直到命令执行完成。
  2. 返回shell命令标准输出结果。
  3. 抛出错误时可捕获到错误信息。
  4. 用法:
    const { execSync } = require('child_process');try {const output = execSync('node -v');console.log(output.toString()); 
    } catch (err) {console.error(err); 
    }
    
  5. 选项:
    • cwd - 子进程的当前工作目录
    • input - 输入给命令的内容
    • stdio - 子进程 stdin/stdout/stderr 配置
    • env - 环境变量键值对
    • shell - 子进程的 shell
    • uid/gid - 设置用户/组 id
  6. 和 exec 的区别是 execSync 是同步的,没有回调函数,会阻塞进程。
  7. 在同步场景下性能更好,但不能在异步回调中使用。

chalk GitHub地址

在 Node.js 中,chalk 是一个常用的命令行字符串样式工具库。
chalk 提供了设置文字颜色、背景颜色、加粗、下划线等样式的方法,例如:

import chalk from 'chalk' // 设置文字为蓝色 
chalk.blue('Hello world!');// 设置背景为红色,文字为白色加粗
chalk.red.bgWhite.bold('Hello world!'); // 下划线
chalk.underline('Hello world!');

常用方法:

  • chalk.red/green/blue 等设置颜色
  • chalk.bold 设置粗体
  • chalk.bgRed/bgGreen等 设置背景色
  • chalk.underline 设置下划线
    chalk 支持链式调用设置多种样式。
    这样可以在 Node.js 命令行程序中打印更醒目的文字和样式。
    所以 chalk 模块为我们提供了简单方便的方法来给终端字符串添加样式,使输出内容更生动、清晰。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/138355.html

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

相关文章

antd-design-vue Table组件全局配置(分页器...)

描述&#xff1a;该框架许多默认配置好像还不支持&#xff0c;一般都是挨个使用挨个配置。我的项目中也遇到了类似的情况&#xff0c;但是当需求发生变化时&#xff0c;代码所有的组件使用则都需要修改&#xff0c;这种方式真的很不礼貌。 《我为了一口醋包了顿饺子》 需求是将…

Canal 实现MySQL与Elasticsearch7数据同步

1 工作原理 canal 模拟 MySQL slave 的交互协议&#xff0c;伪装自己为 MySQL slave &#xff0c;向 MySQL master 发送 dump协议 MySQL master 收到 dump 请求&#xff0c;开始推送 binary log 给 slave (即 canal ) canal 解析 binary log 对象(原始为 byte 流) 优点&…

tensorflow基础

windows安装tensorflow anaconda或者pip安装tensorflow&#xff0c;tensorflow只支持win7 64系统&#xff0c;本人使用tensorflow1.5版本&#xff08;pip install tensorflow1.5&#xff09; tensorboard tensorboard只支持chrome浏览器&#xff0c;而且加载过程中可能有一段…

计算机竞赛 深度学习+opencv+python实现车道线检测 - 自动驾驶

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络3.1卷积层3.2 池化层3.3 激活函数&#xff1a;3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV56 数据集处理7 模型训练8 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &am…

jmeter学习文档

JMeter学习&#xff08;一&#xff09;工具简单介绍 一、JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序&#xff0c;被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能&#xff0c;例如&#xff1a;静态文件&#xff0c;J…

BaseMapper 中的方法

BaseMapper 中的方法&#xff1a; 插入 int insert(T entity) - 插入一条记录。 删除 int deleteById(Serializable id) - 根据主键ID删除记录。 int deleteById(T entity) - 根据实体对象&#xff08;ID&#xff09;删除记录。 int deleteByMap(Map<String, Object> …

Easyui里的datagrid嵌入select下拉框

问题&#xff1a; 想使用datagird里嵌入select下拉框&#xff0c;并在提交form表单时获取datagrid选中的每行数据里的每个下拉框选中的值。 解决方案&#xff1a; 其中economicIssuesSelect使用下拉框&#xff0c;重点关注 initEconomicIssues(row)方法。这里的方法需要传递ro…

C语言基础知识点(八)联合体和大小端模式

以下程序的输出是&#xff08;&#xff09; union myun {struct { int x, y, z;} u;int k; } a; int main() {a.u.x 4;a.u.y 5;a.u.z 6;a.k 0;printf("%d\n", a.u.x); } 小端模式 数据的低位放在低地址空间&#xff0c;数据的高位放在高地址空间 简记&#xff…

微软(TTS)文本转语音服务API实现

此博客实现与java实现微软文本转语音&#xff08;TTS&#xff09;经验总结_java tts_${简简单单}的博客-CSDN博客之上&#xff0c;首先感谢博客源码的提供&#xff0c;本人在上面添加了一些详细的注释&#xff0c;方便大家跟好的理解和使用&#xff0c;毕竟我已经用原文调试了一…

云原生Kubernetes:pod进阶之资源管理与探针

目录 一、理论 1.pod的资源限制 2.健康检查&#xff08;探针Probe) 3.示例 二、实验 1.pod的资源限制 2.健康检查&#xff08;探针Probe) 三、问题 1.生成资源报错 2.api版本错误 3.echo N>/proc/sys/vm/drop_caches如何实现清理缓存 4.生成启动退出容器报错 5…

java版Spring Cloud+Mybatis+Oauth2+分布式+微服务+实现工程管理系统

鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;公司对内部工程管…

python教程:使用gevent实现高并发并限制最大并发数

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 import time import gevent from gevent.pool import Pool from gevent import monkey # 一&#xff0c;定义最大并发数 p Pool(20) # 二&#xff0c;导入gevent…

【Docker】华为云服务器安装 Docker 容器

简介 Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。 容器是完全使用沙箱机…

知识图谱基本工具Neo4j使用笔记 五 :APOC插件安装及简单应用

文章目录 一、使用场景二、系统说明三、配置安装1. 插件下载2. 文件下载说明3. 版本对应4. 安装位置5. 修改配置文件6. 注意问题7. web端启动&#xff1a;测试 四、简单应用1. 编辑距离2. 基于编辑距离的相似度3. 模糊匹配 一、使用场景 APOC&#xff08;Awesome Procedures o…

基于movie lens-100k数据集的协同过滤算法实现

基于movie lens-100k数据集的协同过滤算法实现 数据集处理 基于用户的协同过滤算法的实现 基于物品的协同过滤算法的实现 数据集处理 import pandas as pdu_data pd.read_csv(D:/PyCharmWorkSpace/ml-100k/ml-100k/u.data) u_genre pd.read_csv(D:/PyCharmWorkSpace/ml-10…

如何批量为文件夹命名

如果你想要命名一些这样名字具有规律性的文件夹&#xff0c;当文件的数量增多&#xff0c;一个一个命名是非常耗费时间的。很容易想到&#xff0c;如果使用EXCEL&#xff0c;只需往下拉&#xff0c;就能很轻松的拉出1到5。那么&#xff0c;我们如何利用EXCEL来对文件夹进行快速…

LazadaAPI接口解析,实现获得lazada商品评论列表

Lazada是一个流行的跨境电商平台&#xff0c;它提供了API接口供开发者使用。要获取Lazada商品评论列表&#xff0c;您需要使用Lazada API接口并进行相应的请求。 以下是使用Lazada API接口获取商品评论列表的示例代码&#xff08;使用Python编写&#xff09;&#xff1a; pyth…

【Linux】系统编程线程互斥与同步(C++)

目录 【1】线程互斥 【1.1】进程线程间的互斥相关背景概念 【1.2】互斥量mutex 【1.3】互斥量实现原理探究 【1.4】RAII的加锁风格 【2】可重入VS线程安全 【2.1】概念 【2.2】常见的线程不安全的情况 【2.3】常见的线程安全的情况 【2.4】常见不可重入的情况 【2.5…

无线定位中TDOA时延估计算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ...................................................................figure; plot(P1x,P1y…

【Graph Net学习】LINE实现Graph Embedding

一、简介 LINE (Large-scale Information Network Embedding,2015) 是一种设计用于处理大规模信息网络的算法。它主要的目标是在给定的大规模信息网络中学习高质量的节点嵌入&#xff0c;并尽量保留网络中信息的丰富性。其具体的表现为在一个低 维空间里以向量形式表示网络中的…