const arg= require("arg");
const get= require("lodash/get");
// 解析命令行参数 rawArgs即 process.argv
module.exports=function(rawArgs) {
  const args = arg(
    {
      "--dev":Boolean,
      "--build":Boolean,
      "--create": Boolean,
      "--version": Boolean,
      "--test": Boolean,
      "-v": "--version",//-v 转译成 --version
    },
    {
      permissive:true,
      // process.argv除了前两个，其余的元素才是额外的命令行参数
      argv: rawArgs.slice(2), 
    }
  );

  // 对外暴露的可用参数
  return {
    dev: get(args, "--dev", false), 
    build: get(args, "--build", false), 
    install: get(args, "--create", false), 
    version: get(args, "--version", false), 
    test: get(args, "--test", false), 
  };
}