0.2.2 • Published 9 months ago

parallel-wait-run v0.2.2

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

parallel-wait-run

支持同时运行多个npm scripts,并且可以通过自定义的异步函数控制每一个npm scripts的启动时机。

示例

文档

开始

  1. 安装
# npm
npm install -D parallel-wait-run

# pnpm
pnpm add -D parallel-wait-run

# yarn
yarn add -D parallel-wait-run
  1. 在项目根目录添加配置文件 parallel.config.ts(也支持其他JSTS扩展名)
import { defineConfig } from "parallel-wait-run";

export default defineConfig({
  scripts: [
    {
      name: "dev",
      command: `dev command`,
      wait: async () => {
        sleep(1000);
        return true;
      },
    },
    {
      name: `unit-test`,
      command: `unit-test command`,
      wait: async () => {
        sleep(2000);
        return true;
      },
    },
  ],
});

也支持使用函数生成配置

import { defineConfig } from "parallel-wait-run";

export default defineConfig(({ mode, root }) => {
  return {
    scripts: [
      {
        name: "dev",
        command: `pnpm  dev`,
      },
      {
        name: `unit-test`,
        command: `pnpm test-watch`,
      },
    ],
  };
});

异步函数也是支持的

import { defineConfig } from "parallel-wait-run";

export default defineConfig(async ({ mode, root }) => {
  return {
    scripts: [
      {
        name: "dev",
        command: `pnpm  dev`,
      },
      {
        name: `unit-test`,
        command: `pnpm test-watch`,
      },
    ],
  };
});
  1. 运行
# npm
npm run parallel

# pnpm
pnpm parallel

# yarn
yarn parallel

命令行选项

-r, --root

命令运行的根路径,默认process.cwd(), 必须为绝对路径

示例:

npm run parallel -r /a/b/c

-c, --config

指定配置文件,默认会在根路径下自动匹配parallel.config.[ts,js,cjs,mjs], 如果设置为相对路径,则会以 root为基础路径计算路径

示例:

npm run parallel -c ./parallel.custom-config.ts

-m, --mode

指定模式,一般在使用函数生成配置时使用,如

export default defineConfig(({ mode }) => {
  if (mode === "dev") {
    return {
      scripts: [],
    };
  } else {
    return {
      scripts: [],
    };
  }
});

-g, --group

指定运行某一组脚本

-h, --help

显示帮助信息

-v, --version

显示版本号

配置选项

root

  • 类型: string
  • 是否必填: 否
  • 默认值: process.cwd()
  • 根路径,如果使用命令行指定了root,则此配置会被覆盖

beforeRun

  • 类型: () => MaybePromise<boolean>
  • 是否必填: 否
  • 在运行所有脚本命令前运行的函数,如果返回false, 则会退出运行

scripts

  • 类型: array
  • 是否必填: 是
  • 默认运行的脚本列表

script的参数如下:

script.name

  • 类型: string
  • 是否必填: 是
  • 脚本名称

script.command

  • 类型: string
  • 是否必填: 是
  • 脚本的具体命令,例如npm run dev

script.wait

  • 类型: () => MaybePromise<boolean>
  • 是否必填: 否
  • 当此函数执行完成后,运行脚本中的命令,如果返回false,则会退出整个进程的运行

script.cwd

  • 类型: string
  • 是否必填: 否
  • 执行脚本命令的cwd,如果未指定,则会使用root的值

script.env

  • 类型: object
  • 是否必填: 否
  • 为当前脚本命令注入一些环境参数,类型为
type Env = {
  [name: string]: string;
}

script.prefix.text

  • 类型: string
  • 是否必填: 否
  • 脚本命令日志输出的前缀,如果没有指定,则会使用script.name

script.prefix.color

  • 类型: string
  • 是否必填: 否
  • 脚本命令日志前缀的颜色,如果没有指定,则会随机指定生成一种颜色,支持的颜色格式#FF8800,会使用chalk.hex来进行添加颜色

groups

  • 类型: object
  • 是否必填: 否
  • 定义多组脚本,类型为
type Group = {
  [name: string]: ParallelScripts;
}

ParallelScripts的相关参数参照上面的scripts选项

例子

致谢

0.2.1

9 months ago

0.1.2

9 months ago

0.2.0

9 months ago

0.2.2

9 months ago

0.1.0

10 months ago

0.1.1

10 months ago

0.0.6

10 months ago

0.0.5

10 months ago

0.0.4

10 months ago

0.0.3

10 months ago

0.0.2

10 months ago

0.0.1

10 months ago