# node-utils **Repository Path**: agile-development-system/node-utils ## Basic Information - **Project Name**: node-utils - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-04-13 - **Last Updated**: 2021-12-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
nodeUtils
](#module_nodeUtils)的静态class
##### CmdParser.optionParseByConfig(program, config)
基于config配置Command实例
**性质**: [CmdParser
](#module_nodeUtils.CmdParser)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| program | Command
| command实例 |
| config | [CmdConfig
](#module_nodeUtils.CmdParser.optionParseByConfig_alias_CmdConfig) | 命令行解析配置 |
###### CmdConfig : object
命令行解析配置
**性质**: [optionParseByConfig
](#module_nodeUtils.CmdParser.optionParseByConfig)的类型声明
**属性**
| 属性 | 类型 | 描述 |
| --- | --- | --- |
| cmd | string
| 作为插件时为子命令名称,单独使用时`agds-string
| 描述 |
| alias | string
| 此命令的别名,只在插件调用时有效 |
| opts | [Array.<OptConfig>
](#module_nodeUtils.CmdParser.optionParseByConfig_alias_OptConfig) | option配置项描述 |
| args | [Array.<ArgConfig>
](#module_nodeUtils.CmdParser.optionParseByConfig_alias_ArgConfig) | option配置项描述 |
###### OptConfig : object
命令行option解析配置
**性质**: [optionParseByConfig
](#module_nodeUtils.CmdParser.optionParseByConfig)的类型声明
**属性**
| 属性 | 类型 | 描述 |
| --- | --- | --- |
| opt | string
| option字段配置 |
| desc | string
| 描述 |
| default | string
\| boolean
| 默认值 |
| required | boolean
| 是否是必填参数 |
###### ArgConfig : object
命令行option解析配置
**性质**: [optionParseByConfig
](#module_nodeUtils.CmdParser.optionParseByConfig)的类型声明
**属性**
| 属性 | 类型 | 描述 |
| --- | --- | --- |
| arg | string
| option字段配置 |
| desc | string
| 描述 |
| default | string
\| boolean
| 默认值 |
##### CmdParser.cmdParser(options) ⇒ Command
基于配置文件的命令行解析器
**性质**: [CmdParser
](#module_nodeUtils.CmdParser)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| options | object
| 函数参数 |
| options.root | string
| 当前命令行npm包根目录 |
| [options.isCore] | boolean
| 是否是@agds/cli调用 |
| [options.cmd] | string
| 命令名称,命令调用必填 |
#### nodeUtils.CmdUtils
运行命令行的工具集
**性质**: [nodeUtils
](#module_nodeUtils)的静态class
##### CmdUtils.installDependencies(options, prod, [executable]) ⇒ Promise.<void>
在项目中执行 `npm install`
**性质**: [CmdUtils
](#module_nodeUtils.CmdUtils)的静态方法
| 参数 | 类型 | 默认值 | 描述 |
| --- | --- | --- | --- |
| options | module:child\_process~SpawnOptions
| | spawn函数的选项参数 |
| prod | boolean
| | 是否只下载生产依赖 |
| [executable] | 'npm'
\| 'yarn'
\| string
| npm
| 依赖下载工具,可选值:'npm','yarn'或其他node包管理命令 |
##### CmdUtils.runCommand(cmd, args, options) ⇒ Promise.<void>
生成一个子进程并运行指定的命令
默认情况下,运行在CWD和'inherit'的stdio
选项与node的child_process.spawn相同
**性质**: [CmdUtils
](#module_nodeUtils.CmdUtils)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| cmd | string
| 命令 |
| args | Array.<string>
| 参数数组 |
| options | module:child\_process~SpawnOptions
| spawn函数的选项参数 |
#### nodeUtils.ConvName
名称处理工具类,命名格式转换
**性质**: [nodeUtils
](#module_nodeUtils)的静态class
##### new ConvName(name)
获取三种名称转换结果的集合
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| name | stirng
| 名称文本 |
##### convName.lineName : string
横杠名称
**性质**: [ConvName
](#module_nodeUtils.ConvName)的instance属性
##### convName.humpName : string
大驼峰名称
**性质**: [ConvName
](#module_nodeUtils.ConvName)的instance属性
##### convName.lowerHumpName : string
小驼峰名称
**性质**: [ConvName
](#module_nodeUtils.ConvName)的instance属性
##### ConvName.toUpperHump(name) ⇒ string
横杠转大驼峰
**性质**: [ConvName
](#module_nodeUtils.ConvName)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| name | string
| 名称文本 |
##### ConvName.toLowerHump(name) ⇒ string
横杠转小驼峰
**性质**: [ConvName
](#module_nodeUtils.ConvName)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| name | string
| 名称文本 |
##### ConvName.toLine(name) ⇒ string
驼峰转换横杠
**性质**: [ConvName
](#module_nodeUtils.ConvName)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| name | string
| 名称文本 |
##### ConvName.initName(name) ⇒ ConvName
获取驼峰和横杠名称
**性质**: [ConvName
](#module_nodeUtils.ConvName)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| name | string
| 名称文本 |
#### nodeUtils.FastFs
文件系统操作类,集合了几个使用频率较高的文件操作函数
**性质**: [nodeUtils
](#module_nodeUtils)的静态class
##### FastFs.writeFile(filename, data) ⇒ Promise.<void>
异步写入数据,不存在的路径自动创建
**性质**: [FastFs
](#module_nodeUtils.FastFs)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| filename | fs.PathLike
| 文件名 |
| data | object
| 写入的数据(对象) |
##### FastFs.writeFileSync(filename, data) ⇒ void
同步写入数据,不存在的路径自动创建
**性质**: [FastFs
](#module_nodeUtils.FastFs)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| filename | fs.PathLike
| 文件名 |
| data | object
| 写入的数据(对象) |
##### FastFs.getPathStat(path) ⇒ Promise.<boolean>
异步获取路径是否存在
**性质**: [FastFs
](#module_nodeUtils.FastFs)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| path | fs.PathLike
| 路径 |
##### FastFs.getPathStatSync(path) ⇒ boolean
同步获取路径是否存在
**性质**: [FastFs
](#module_nodeUtils.FastFs)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| path | fs.PathLike
| 路径 |
##### FastFs.writeJsonFormat(filename, data, [space]) ⇒ Promise
异步写入符合.json格式的json文件
**性质**: [FastFs
](#module_nodeUtils.FastFs)的静态方法
| 参数 | 类型 | 默认值 | 描述 |
| --- | --- | --- | --- |
| filename | fs.PathLike
| | 文件路径 |
| data | any
| | 需要写入的数据 |
| [space] | string
\| number
| 2
| 指定缩进用的空白字符串 |
##### FastFs.writeJsonFormatSync(filename, data, [space]) ⇒ void
同步写入符合.json格式的json文件
**性质**: [FastFs
](#module_nodeUtils.FastFs)的静态方法
| 参数 | 类型 | 默认值 | 描述 |
| --- | --- | --- | --- |
| filename | fs.PathLike
| | 文件路径 |
| data | any
| | 需要写入的数据 |
| [space] | string
\| number
| 2
| 指定缩进用的空白字符串 |
##### FastFs.readJson(filename) ⇒ Promise.<object>
异步读取json文件
**性质**: [FastFs
](#module_nodeUtils.FastFs)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| filename | fs.PathLike
| json文件路径 |
##### FastFs.readJsonSync(filename) ⇒ object
同步读取json文件
**性质**: [FastFs
](#module_nodeUtils.FastFs)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| filename | fs.PathLike
| json文件路径 |
##### FastFs.sortDependencies(packageJsonFile)
对packageJson的依赖对象进行key的排序
**性质**: [FastFs
](#module_nodeUtils.FastFs)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| packageJsonFile | string
| packageJson文件绝对路径 |
#### nodeUtils.FastPath
路径工具类,快速获取各类node常用路径,每个方法要求路径都不是绝对路径
如果是绝对路径,就按照绝对路径拼接
**性质**: [nodeUtils
](#module_nodeUtils)的静态class
##### FastPath.getCwdPath(...paths) ⇒ string
获取运行目录加路径的绝对路径
**性质**: [FastPath
](#module_nodeUtils.FastPath)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| ...paths | string
| 路径 |
##### FastPath.getHomePath(...paths) ⇒ string
获取用户目录加路径的绝对路径
**性质**: [FastPath
](#module_nodeUtils.FastPath)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| ...paths | string
| 路径 |
##### FastPath.getAgdsHomePath(...paths) ⇒ string
获取用户目录加路径的绝对路径
**性质**: [FastPath
](#module_nodeUtils.FastPath)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| ...paths | string
| 路径 |
##### FastPath.convPath(basePath, paths) ⇒ string
基于基础路径拼接追加路径,如果追加路径数组第一个路径是绝对路径,忽略基础路径直接拼接返回FastPath
](#module_nodeUtils.FastPath)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| basePath | string
| 基础路径 |
| paths | Array.<string>
| 追加路径数组 |
#### nodeUtils.GitUtils
Git工具集合
**性质**: [nodeUtils
](#module_nodeUtils)的静态class
##### GitUtils.gcHasMsg() ⇒ boolean
判断`git commit`是否传入`-m`参数
配合`yorkie`使用,不支持识别husky
**性质**: [GitUtils
](#module_nodeUtils.GitUtils)的静态方法
##### GitUtils.getUser() ⇒ [UserObj
](#module_nodeUtils.GitUtils.getUser_alias_UserObj)
获取当前git用户名称
**性质**: [GitUtils
](#module_nodeUtils.GitUtils)的静态方法
**返回值**: [UserObj
](#module_nodeUtils.GitUtils.getUser_alias_UserObj) - git用户名对象
###### UserObj : object
git用户名对象
**性质**: [getUser
](#module_nodeUtils.GitUtils.getUser)的类型声明
**属性**
| 属性 | 类型 | 描述 |
| --- | --- | --- |
| name | string
| 名字 |
| email | string
| 电子邮箱 |
| all | string
| {name}<{email}> |
#### nodeUtils.Notice
基于chalk封装的控制台输出静态函数类
**性质**: [nodeUtils
](#module_nodeUtils)的静态class
##### ChalkType : 'success'
\| 'error'
\| 'warn'
\| 'info'
\| string
chalk类型以及别名
**性质**: [Notice
](#module_nodeUtils.Notice)的类型声明
##### Notice.success(msg) ⇒ void
控制台输出成功信息
**性质**: [Notice
](#module_nodeUtils.Notice)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| msg | string
| 成功信息 |
##### Notice.error(msg) ⇒ void
控制台输出错误信息
**性质**: [Notice
](#module_nodeUtils.Notice)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| msg | string
| 错误信息文本 |
##### Notice.warn(msg) ⇒ void
控制台输出警告信息
**性质**: [Notice
](#module_nodeUtils.Notice)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| msg | string
| 警告信息文本 |
##### Notice.info(msg) ⇒ void
控制台输出信息
**性质**: [Notice
](#module_nodeUtils.Notice)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| msg | string
| 信息文本 |
##### Notice.getStr(type, msg) ⇒ chalk
获取各种颜色的字体
**性质**: [Notice
](#module_nodeUtils.Notice)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| type | [ChalkType
](#module_nodeUtils.Notice_alias_ChalkType) | chalk类型 |
| msg | string
| 文本 |
##### Notice.getBoldStr(type, msg) ⇒ chalk
获取各种颜色的粗体字体
**性质**: [Notice
](#module_nodeUtils.Notice)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| type | [ChalkType
](#module_nodeUtils.Notice_alias_ChalkType) | chalk类型 |
| msg | string
| 文本 |
#### nodeUtils.NpmUtils
npm工具集合
**性质**: [nodeUtils
](#module_nodeUtils)的静态class
##### NpmUtils.getRegistry() ⇒ string
获取当前项目的npm镜像地址
**性质**: [NpmUtils
](#module_nodeUtils.NpmUtils)的静态方法
##### NpmUtils.getPackageInfo(packageName, [version]) ⇒ Promise
获取npm包的所有版本的所有信息
**性质**: [NpmUtils
](#module_nodeUtils.NpmUtils)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| packageName | string
| 包名 |
| [version] | string
| 版本或tag |
##### NpmUtils.getPackageInfoWithVersion(packageName, [version]) ⇒ Promise
获取指定版本包信息
**性质**: [NpmUtils
](#module_nodeUtils.NpmUtils)的静态方法
**返回值**: Promise
- 对应版本包信息
| 参数 | 类型 | 默认值 | 描述 |
| --- | --- | --- | --- |
| packageName | string
| | 包名 |
| [version] | string
| "latest"
| 版本或者版本tag |
##### NpmUtils.downloadPackage(options) ⇒ string
下载npm包到本地
**性质**: [NpmUtils
](#module_nodeUtils.NpmUtils)的静态方法
**返回值**: string
- 包下载的本地路径
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| options | object
| 下载配置 |
| options.outputDir | string
| 输出目录 |
| options.packageName | string
| 包名 |
| [options.version] | string
| 版本或者版本tag |
| [options.autoInstall] | boolean
\| [InstallOption
](#module_nodeUtils.NpmUtils.downloadPackage_alias_InstallOption) | 自动下载npm包依赖或者自动下载配置 |
###### InstallOption : object
下载配置
**性质**: [downloadPackage
](#module_nodeUtils.NpmUtils.downloadPackage)的类型声明
**属性**
| 属性 | 类型 | 默认值 | 描述 |
| --- | --- | --- | --- |
| [prod] | boolean
| true
| 是否只下载生产依赖 |
#### nodeUtils.PresetUtils
支持presets预设的配置生成工具
**性质**: [nodeUtils
](#module_nodeUtils)的静态class
##### Config : object
支持preset的配置对象
**性质**: [PresetUtils
](#module_nodeUtils.PresetUtils)的类型声明
**属性**
| 属性 | 类型 | 描述 |
| --- | --- | --- |
| presets | [Array.<Config>
](#module_nodeUtils.PresetUtils_alias_Config) | 预设配置数组 |
| modify | [ConfigModify
](#module_nodeUtils.PresetUtils_alias_ConfigModify) | 将默认配置和preset合并后生成的config再次处理的钩子 |
##### ConfigModify ⇒ [Config
](#module_nodeUtils.PresetUtils_alias_Config)
**性质**: [PresetUtils
](#module_nodeUtils.PresetUtils)的类型声明
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| config | [Config
](#module_nodeUtils.PresetUtils_alias_Config) | 将默认配置和preset合并后生成的config |
##### PresetUtils.getDeepPreset(config) ⇒ Promise.<Array.<Config>>
递归获取配置对象presets数组,返回一维数组
**性质**: [PresetUtils
](#module_nodeUtils.PresetUtils)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| config | [Config
](#module_nodeUtils.PresetUtils_alias_Config) | 配置对象 |
##### PresetUtils.getDeepPresetMerge(config) ⇒ [Config
](#module_nodeUtils.PresetUtils_alias_Config)
递归获取配置对象presets数组,并使用merge合并
**性质**: [PresetUtils
](#module_nodeUtils.PresetUtils)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| config | [Config
](#module_nodeUtils.PresetUtils_alias_Config) | 配置对象 |
##### PresetUtils.getDeepPresetMergeAndModify(config) ⇒ [Config
](#module_nodeUtils.PresetUtils_alias_Config)
递归获取配置对象presets数组,并使用merge合并,最后调用`config.modify`函数
**性质**: [PresetUtils
](#module_nodeUtils.PresetUtils)的静态方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| config | [Config
](#module_nodeUtils.PresetUtils_alias_Config) | 配置对象 |
## 命令行使用文档
```
Usage: agds-gc-has-msg [options]
判断git commit命令是否传入-m参数
Options:
-v,--version 查看版本号
-h, --help 查看帮助信息
配合git hooks【prepare-commit-msg】和【commitizen】使用,避免git commit已经传入-m参数时调用commitizen界面
文档查看:git@gitee.com:agile-development-system/node-utils
@agds/node-utils@1.0.16 /Users/jinyang/code/ads/node-utils/node_modules/@agds/node-utils
```
#### 如何使用
> 在`package.json`下的`gitHooks['prepare-commit-msg']`下配合commitizen使用,git生命周期插件必须是**yorkie**
```diff
"gitHooks": {
+ "prepare-commit-msg": "agds-gc-has-msg && exec < /dev/tty && git cz --hook || true"
},
```
## 许可证
[MIT License](https://gitee.com/agile-development-system/node-utils/blob/master/LICENSE)
Copyright (c) 2021 锦阳
## 请维护者喝杯咖啡