node.js - 在生成同步子进程上触发并行节点进度条
问题描述
我基本上是在尝试围绕npm install package
功能构建自己的包装器。
我已经成功编写了安装函数包装器,但是现在我想在同步生成一个基本上安装的子进程时触发一个进度条npm modules
,下面是我的代码
const spawn = require('cross-spawn');
const ProgressBar = require('progress');
const chalk = require('chalk');
public static installPkgs =
(des: any, packages: string[], opts: any) => {
const args: string[] = [];
if (opts.save) {
args.push('-S');
}
if (opts.saveDev) {
args.push('-D');
}
if (opts.global) {
args.push('-g');
}
const cliArgs: string[] = ['i'].concat(args, packages);
if (typeof des === 'string') {
process.stdout.write('\n' + chalk.yellow(des) + '\n');
} else {
process.stdout.write('');
}
const barOpts = {
width: 20,
total: packages.length,
clear: true
};
const bar = new ProgressBar(' uploading [:bar] :percent :etas', barOpts);
bar.tick(0);
const bat = spawn.sync('npm', cliArgs, {stdio:'pipe'});
bar.tick(bat.stdout.toString().length);
}
现在我的问题是——
- 我不确定是否用于进度条刻度完成
packages.length
的总属性 - 由于生成是以同步方式发生的,因此在该过程之后会触发进度条,如何在下载 npm 模块后立即触发它?
请帮助我指导正确的方向如何实现上述目标!
解决方案
推荐阅读
- javascript - Foundation Accordion 在 React 中不起作用
- mysql - 复合键 mySQL 约束
- sql - 按日期范围细分日期的摘要
- python - PyTorch sigmoid 给出退出代码 132 SIGILL
- image - 如何用图像JavaFX填充形状
- javascript - Firebase orderByValue().equalTo() 不是函数(Node JS)
- python - Pandas:基于现有数据框创建新数据框
- python - 关于 keras.losses.mean_square_error 的问题
- winapi - MFTransform 编码器->ProcessInput 返回 E_FAIL
- svn - SVN合并冲突编辑:竖线(“|||||||”)是什么意思?