美文网首页Node.jsDeno
Deno 下命令行子进程实操

Deno 下命令行子进程实操

作者: Kenny锅 | 来源:发表于2020-05-17 20:43 被阅读0次

说白了就是在 subprocess 下执行 shell 命令

  • cmd 表示命令,用逗号来代替 shell 里的空格

下面就是我用 Deno 重写一遍原来用 shell 来实现打包功能(主要是不会在命令行生成带时间戳的文件名,逃

import { moment } from 'https://deno.land/x/moment/moment.ts';
const { run } = Deno;

const timeStamp = moment().format('YYYYMMDD-hhmmss');

const removeOld = async () => {
  const rimraf = run({
    cmd: ['rimraf', 'tool/*.zip'],
  });
  await rimraf.status();
  rimraf.close();

  const newFiles = 'dist,.DS_Store,package.json,package-lock.json'.split(',');
  for (const file of newFiles) {
    const filePath = `tool/${file}`;
    const runCmd = run({
      cmd: ['rm', '-rf', filePath],
    });
    await runCmd.status();
    runCmd.close();
  }
};

const copyNew = async () => {
  const newFiles = 'dist,.npmrc,package.json,package-lock.json'.split(',');
  for (const file of newFiles) {
    const runCmd = run({
      cmd: ['cp', file === 'dist' ? '-Rf' : '-f', file, 'tool'],
    });
    await runCmd.status();
    runCmd.close();
  }
};

const zip = async () => {
  const runCmd = run({
    cmd: ['zip', '-r', `tool/导出小工具-${timeStamp}.zip`, 'tool'],
  });
  await runCmd.status();
  runCmd.close();
};

const main = async () => {
  await removeOld();
  await copyNew();
  await zip();
};

main();

为什么不用 copyFile readFile 之类的内置命令
答: 这些命令不支持目录的遍历操作,也不支持 *.* 通配符

API 使用说明:

相关文章

  • Deno 下命令行子进程实操

    说白了就是在 subprocess 下执行 shell 命令 cmd 表示命令,用逗号来代替 shell 里的空...

  • 2.deno入门

    2.1 安装deno2.2 设置deno环境2.3 deno第一滴血2.4 deno命令行2.5 deno权限2....

  • 实操(下)

    基功再足 不一而足 因材问质,五心均殊却源原路

  • 进程(六):子 Shell

    子 Shell 是由 Shell 或 Shell 脚本运行的子进程。当我们在 Shell 命令行提示符下,运行一个...

  • Android内存泄漏笔记

    实操 MAT:androidProfile进行headdump 命令行导出快照 然后MAT进行配对 原理:GC回收...

  • deno学习(2)---从Hello World开始

    deno的执行非常简单,使用deno xx.ts即可。 从deno hello.ts出发,探究一下deno的运行机...

  • 1组nemowy 第四课#寻找宝妈社群#

    1、每日所完成结果的截图 昨天开始实操,进入宝妈群7个,闲鱼还未实操,今天晚上试一下。 2、针对所实操任务是怎么完...

  • Mybatis-2-2.实操总结

    通过上一部分的实操知道了Mybatis的用法。那么这章总结一下上一个实操项目。 实操项目全部源代码:https:/...

  • 孤儿进程和僵尸进程

    基本概念 在unix/linux中,正常情况下,子进程是通过父进程创建,子进程再创建新的进程。子进程的结束和父进程...

  • 2018-02-11 mac 系统的中常见命令行教程

    mac 系统的中常见命令行教程 目录操作 文件操作 选择操作 安全操作 编程操作 进程操作 时间操作 网络与通信操...

网友评论

    本文标题:Deno 下命令行子进程实操

    本文链接:https://www.haomeiwen.com/subject/llzsohtx.html