From 52a9fa8184c4bdf3acd79d3acd1a359748efd2e4 Mon Sep 17 00:00:00 2001 From: beezen <1184031131@qq.com> Date: Mon, 15 Apr 2024 19:40:02 +0800 Subject: [PATCH 1/3] =?UTF-8?q?chore:=20=E4=BC=98=E5=8C=96=E9=A2=84?= =?UTF-8?q?=E5=A4=84=E7=90=86=E5=87=BD=E6=95=B0=E6=89=A7=E8=A1=8C=E9=A1=BA?= =?UTF-8?q?=E5=BA=8F&=E6=96=87=E6=A1=A3=E5=86=85=E5=AE=B9=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- README_EN.md | 2 +- docs/use.md | 11 +++++++++-- src/actions/base.ts | 2 +- src/actions/registry.ts | 2 +- src/common/index.ts | 2 +- src/index.ts | 17 +++++++++-------- 7 files changed, 23 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index c71f2dd..e00ef4c 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Options: Commands: ls [options] 查看账号列表 - use 切换账号 + use [options] 切换账号 add 添加账号 del 移除账号 localize 使用本地化语言 diff --git a/README_EN.md b/README_EN.md index 10f34c1..9d74e81 100644 --- a/README_EN.md +++ b/README_EN.md @@ -44,7 +44,7 @@ Options: Commands: ls [options] show account list - use switch account + use [options] switch account add add account del remove account localize|language use localized languages diff --git a/docs/use.md b/docs/use.md index f9c5fcb..bf451bc 100644 --- a/docs/use.md +++ b/docs/use.md @@ -9,10 +9,17 @@ title: nucm use 切换账号 ## 命令 ```bash -$ nucm use +$ nucm use [options] ``` -## 配置 +## 参数 + +`options` + +- Default: null, 可选参数:`'-t'` +- Required: false + +配置参数,`-t` 用于标识切换账号的方式,可选值为 `authToken`(默认) | `auth`。 `name` diff --git a/src/actions/base.ts b/src/actions/base.ts index ee304fb..bdda0e3 100644 --- a/src/actions/base.ts +++ b/src/actions/base.ts @@ -16,7 +16,7 @@ interface AuthOptions { /** * 获取用户列表 */ -export function getUserList(options: LOptions) { +export function getUserList(options: LOptions): any { const { fileConfig, registryConfig } = baseInitConfig; const defaultLog = printLog("account.noData", { isPrint: false, type: "error" }); let userList = ""; diff --git a/src/actions/registry.ts b/src/actions/registry.ts index c2e2558..b52f687 100644 --- a/src/actions/registry.ts +++ b/src/actions/registry.ts @@ -1,7 +1,7 @@ import * as shell from "shelljs"; import { getNrmModule, printLog } from "../utils/index"; /** 代理 NRM 工具指令 */ -export function proxyNrm(cmd: string[]) { +export function proxyNrm(cmd: string[]): any { const nrmCmd = cmd.join(" "); const nrmCli = getNrmModule(); if (!nrmCli) { diff --git a/src/common/index.ts b/src/common/index.ts index 672b65c..6a3a642 100644 --- a/src/common/index.ts +++ b/src/common/index.ts @@ -163,7 +163,7 @@ export function setRegistryAlias(registryConfig: RegistryConfig): void { * @param handler action监听函数 */ export function prepareEnv(handler?: (...args: any[]) => any) { - return function (...args: any[]): void { + return function (...args: any[]): any { if (!checkConfigInit()) return; // 配置初始化 const fileConfig = getConfig(); // 基础配置 const registryConfig = getRegistryConfig(fileConfig); // 源信息配置 diff --git a/src/index.ts b/src/index.ts index 261126e..83e8bdc 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,6 +5,7 @@ import { updateVersion, changeLang, searchToSave } from "./actions/helper"; import { proxyNrm } from "./actions/registry"; import { printLog } from "./utils/index"; initLanguage(); +prepareEnv()(); // 初始化环境 const pkg = require("../package.json"); const program = new Command(); @@ -15,34 +16,34 @@ program .option("-l,--list", printLog("command.listLs", { isPrint: false })) .option("-a,--all", printLog("command.listAll", { isPrint: false })) .description(printLog("command.list", { isPrint: false })) - .action(prepareEnv(getUserList)); + .action(getUserList); program .command("use ") .option("-t,--type ", printLog("command.switchAccountUseType", { isPrint: false })) .description(printLog("command.switchAccount", { isPrint: false })) - .action(prepareEnv(changeUser)); + .action(changeUser); program .command("add ") .description(printLog("command.addAccount", { isPrint: false })) - .action(prepareEnv(addUser)); + .action(addUser); program .command("del ") .description(printLog("command.removeAccount", { isPrint: false })) - .action(prepareEnv(removeUser)); + .action(removeUser); program .command("localize ") .alias("language") .description(printLog("command.localizedLang", { isPrint: false })) - .action(prepareEnv(changeLang)); + .action(changeLang); program .command("update") .option("--silent", printLog("command.updateSilent", { isPrint: false })) .description(printLog("command.update", { isPrint: false })) - .action(prepareEnv((options) => updateVersion(options, pkg.version))); + .action((options) => updateVersion(options, pkg.version)); program .command("save") .description(printLog("command.saveAccount", { isPrint: false })) - .action(prepareEnv(searchToSave)); + .action(searchToSave); program .command("registry ") .alias("nrm") @@ -58,5 +59,5 @@ program $ nucm registry use taobao // Change taobao registry ` ) - .action(prepareEnv(proxyNrm)); + .action(proxyNrm); program.parse(process.argv); From 297e849bc62e3d8da10a603874a641de25e13016 Mon Sep 17 00:00:00 2001 From: beezen <1184031131@qq.com> Date: Tue, 16 Apr 2024 14:09:03 +0800 Subject: [PATCH 2/3] chroe: test coverage ci --- coverage/clover.xml | 4 +-- docs/README.md | 16 +++++------ docs/add.md | 18 +++--------- docs/del.md | 9 ++---- docs/list.md | 38 ++++++++++++++++++++----- docs/localize.md | 11 ++------ docs/more.md | 27 +++++++++++++++++- docs/registry.md | 53 ++++++---------------------------- docs/save.md | 2 +- docs/start.md | 69 +++++++++++++++------------------------------ docs/update.md | 13 ++++----- docs/use.md | 31 ++++++++++++++------ 12 files changed, 137 insertions(+), 154 deletions(-) diff --git a/coverage/clover.xml b/coverage/clover.xml index b2b6e7c..3c4dfd0 100644 --- a/coverage/clover.xml +++ b/coverage/clover.xml @@ -1,6 +1,6 @@ - - + + diff --git a/docs/README.md b/docs/README.md index 33297d2..5da4cf9 100644 --- a/docs/README.md +++ b/docs/README.md @@ -8,24 +8,24 @@ NUCM 的全称为 NPM User Change Manager,是一款高效而直观的 NPM 账 ![An image](./static/nucm.gif) -**主要特性包括:** +## **主要特性包括:** -1. 快速账号切换: 使用"NPM User Change Manager",用户可以通过简单的命令或图形界面迅速切换到他们的不同 NPM 账号,无需反复输入认证信息。 +1. **快速账号切换**: 使用"NPM User Change Manager",用户可以通过简单的命令或图形界面迅速切换到他们的不同 NPM 账号,无需反复输入认证信息。 -2. 账号配置管理: 支持灵活的账号配置,用户可以保存和管理多个 NPM 账号的配置信息,以便在需要时方便地切换。 +2. **账号配置管理**: 支持灵活的账号配置,用户可以保存和管理多个 NPM 账号的配置信息,以便在需要时方便地切换。 -3. 命令行和图形用户界面: 提供命令行工具图形用户界面,满足不同用户的使用偏好,使切换账号变得轻松而灵活。 +3. **命令行和图形用户界面**: 提供命令行工具图形用户界面,满足不同用户的使用偏好,使切换账号变得轻松而灵活。 -4. 安全性和隐私:"NPM User Change Manager"采用安全的认证方式,并确保用户的敏感信息得到妥善保护,提供了安全可靠的账号管理环境。 +4. **安全性和隐私**:"NPM User Change Manager"采用安全的认证方式,并确保用户的敏感信息得到妥善保护,提供了安全可靠的账号管理环境。 -**NUCM 工具的主要用户群体包括:** +## **NUCM 工具的主要用户群体包括:** - 经常遗忘 NPM 账号和密码的开发者 - 需要频繁切换多个 NPM 账号的开发者 -**简易操作指南** +## **简易操作指南** -NUCM 是一个基于 NPM Access Tokens 机制的账号切换管理工具,它的使用步骤简单易行: +NUCM 是一个基于 NPM [Access Tokens](more.html#获取-access-token-账号) 机制实现的账号切换管理工具,它的使用步骤简单易懂: 1、添加账号 diff --git a/docs/add.md b/docs/add.md index fd4eb06..8ad1734 100644 --- a/docs/add.md +++ b/docs/add.md @@ -4,7 +4,7 @@ title: nucm add 添加账号 # 添加账号 -通过添加本地账号(Access Tokens)并设置别名,轻松管理 NPM 账号切换。 +通过添加本地账号(Access Tokens)并设置别名,轻松管理 NPM 账号切换。[点击查看 access-tokens 获取方式](more.html#获取-access-token-账号) ## 命令 @@ -12,18 +12,8 @@ title: nucm add 添加账号 $ nucm add ``` -## 配置 +## 参数 -`name` +- `name`:账号别名。为 Access Tokens 账号设置一个易于识别的别名,方便后续账号查找和切换。 -- Default: null -- Required: true - -账号别名。为 Access Tokens 账号设置一个易于识别的别名,方便后续账号查找和切换。 - -`access-tokens` - -- Default: null -- Required: true - -NPM 的 Access Tokens 账号。[点击查看 access-tokens 获取方式](start.html#获取-access-token-账号) +- `access-tokens`:NPM 的 Access Tokens 账号。 diff --git a/docs/del.md b/docs/del.md index 5afee8d..ce45d5e 100644 --- a/docs/del.md +++ b/docs/del.md @@ -12,11 +12,6 @@ title: nucm del 移除账号 $ nucm del ``` -## 配置 +## 参数 -`name` - -- Default: null -- Required: true - -账号别名。工具会根据账号别名删除对应的 Access Tokens 账号。 +- `name`:账号别名。工具会根据账号别名删除对应的 Access Tokens 账号。 diff --git a/docs/list.md b/docs/list.md index 8b398c8..946f607 100644 --- a/docs/list.md +++ b/docs/list.md @@ -12,37 +12,61 @@ title: nucm ls 查看账号 $ nucm ls [options] ``` -## 配置 +## 参数 -`options` +- `options`:可选参数 -- Default: null。可选参数:`'-l'` | `'-a'` | `'-al'` -- Required: false +| 选项 | 描述 | +| ------------- | ------------------------------ | +| `-l`,`--list` | 明文显示账号详细信息 | +| `-a`,`--all` | 脱敏显示所有注册源下的账号列表 | -`options` 表示查看账号列表的详细配置参数。它为空时,显示账号列表(脱敏);它为 `-l` 时,显示账号详细信息(非脱敏);它为 `-a` 时,显示所有注册源下的账号列表(脱敏);它为 `-al` 时,显示所有注册源下的账号列表(非脱敏)。 - -## 详细 +## 示例 1、仅查看当前源下的账号列表,且账号都脱敏显示 ```bash $ nucm ls + +【taobao】 +* test01 ------------- ......56789 ``` 2、仅查看当前源下的账号列表,且账号都完整显示(请注意保护自己的账号) ```bash $ nucm ls -l #或 --list + +【taobao】 +* test01 ------------- 123456789 ``` 3、查看所有注册源下的账号列表,且账号都脱敏显示 ```bash $ nucm ls -a #或 --all + +【npm】 +* test01 ------------- ......56789 + +【cnpm】 +* test01 ------------- ......56789 + +【artifactory】 +* test01 ------------- ......56789 ``` 4、查看所有注册源下的账号列表,且账号都完整显示(请注意保护自己的账号) ```bash $ nucm ls -al #或 --all --list + +【npm】 +* test01 ------------- 123456789 + +【cnpm】 +* test01 ------------- 123456789 + +【artifactory】 +* test01 ------------- 123456789 ``` diff --git a/docs/localize.md b/docs/localize.md index 7fc590c..30a16ba 100644 --- a/docs/localize.md +++ b/docs/localize.md @@ -12,16 +12,11 @@ title: nucm localize 切换语言 $ nucm localize ``` -## 配置 +## 参数 -`lang` +- `lang`:工具显示语言 `en` or `cn`,默认 `cn`。`en` 表示英文,`cn` 表示中文。 -- Default: null。可选参数:`'en'` | `'cn'` -- Required: true - -工具语言。`en` 表示英文,`cn` 表示中文。 - -## 详细 +## 示例 1、切换英文版本 diff --git a/docs/more.md b/docs/more.md index ecafc76..5f2a736 100644 --- a/docs/more.md +++ b/docs/more.md @@ -8,7 +8,7 @@ title: 了解更多... 欢迎任何形式的贡献,不管是一个错别字的修改,还是一次友好的建议,不管是通过提交 [Issue](https://github.com/beezen/nucm/issues), 还是一个帅气 [pull request](https://github.com/beezen/nucm/pulls)。 -## NPM auth related configuration +## NPM 账号关联配置 The settings `_auth`, `_authToken`, `username` and `_password` must all be scoped to a specific registry. This ensures that `npm` will never send credentials to the wrong host. @@ -22,6 +22,31 @@ The full list is: - `certfile` (path to certificate file) - `keyfile` (path to key file) +## 获取 Access Token 账号 + +1、[NPM 官网](https://www.npmjs.com/)登录个人账号,在页面的右上角,单击“配置文件”图片,然后单击“访问令牌” + +![An image](./static/tokens-profile.png) + +2、单击生成新的标记。 +![An image](./static/create-token.png) + +3、命名您的令牌。 + +4、选择访问令牌的类型(一般选 Publish,具体查看文档说明) + +![An image](./static/token-level-select.png) + +5、点击生成令牌。 + +6、从页面顶部复制令牌(access-tokens)。 + +> Access Tokens: +> An access token is an alternative to using your username and password for authenticating to npm when using the API or the npm command-line interface (CLI). An access token is a hexadecimal string that you can use to authenticate, and which gives you the right to install and/or publish your modules. + +> 中文翻译: +> 访问令牌是使用 API 或 NPM 命令行界面(CLI)时使用您的用户名和密码进行身份验证到 NPM 的替代方案。访问令牌是您可以用于身份验证的十六进制字符串,并为您提供安装和/或发布模块的权利。 + ## 参考链接 - [npmrc](https://docs.npmjs.com/cli/v9/configuring-npm/npmrc) diff --git a/docs/registry.md b/docs/registry.md index b7aa990..41e6901 100644 --- a/docs/registry.md +++ b/docs/registry.md @@ -12,53 +12,18 @@ title: nucm registry 镜像源操作 $ nucm registry ``` -## `cmd...` 变长参数 +## 参数 -### `ls` +- `cmd...`:变长参数,代表子命令集合。 -查看镜像源列表。 +| 子命令 | 描述 | +| ------------------ | ------------------------------------------------------------ | +| `ls` | 查看镜像源列表。 | +| `add ` | 添加镜像源和别名。`name`:镜像源的别名, `url`:镜像源的地址 | +| `use ` | 切换当前镜像源。`name`:镜像源的别名。 | +| `del ` | 删除指定镜像源。`name`:镜像源的别名。 | -### `add ` - -添加镜像源和别名。 - -`name` - -- Default: null -- Required: true - -镜像源的别名 - -`url` - -- Default: null -- Required: true - -镜像源的地址 - -### `use ` - -切换当前镜像源。 - -`name` - -- Default: null -- Required: true - -镜像源的别名 - -### `del ` - -删除指定镜像源。 - -`name` - -- Default: null -- Required: true - -镜像源的别名 - -## 详细 +## 示例 1、查看当前镜像源列表 diff --git a/docs/save.md b/docs/save.md index 6f08575..cf90f78 100644 --- a/docs/save.md +++ b/docs/save.md @@ -12,7 +12,7 @@ title: nucm save 保存账号 $ nucm save ``` -## 详细 +## 示例 1、保存当前用户账号,提示输入账号别名(默认为随机名称) diff --git a/docs/start.md b/docs/start.md index 2e2f980..425a495 100644 --- a/docs/start.md +++ b/docs/start.md @@ -15,11 +15,31 @@ $ npm install -g nucm $ yarn global add nucm ``` +## 常用命令 + +```bash +Usage: nucm [options] [command] + +Options: + -v,--version 查看版本 + -h, --help 显示命令帮助 + +Commands: + ls [options] 查看账号列表 + use 切换账号 + add 添加账号 + del 移除账号 + localize 使用本地化语言 + update [options] 更新版本 + save 保存当前账号 + help [command] display help for command +``` + ## 操作步骤 ### 1、添加账号 -执行 `nucm add ` 添加账号, `name` 为自定义的账号别名,`access-tokens` 为 NPM 账号令牌。例如: +执行 `nucm add ` 添加账号, `name` 为自定义的账号别名,`access-tokens` 为 NPM 账号令牌。例如: ```bash $ nucm add beezen xxxxxxxxxxxxxxxx @@ -27,7 +47,7 @@ $ nucm add beezen xxxxxxxxxxxxxxxx 添加账号成功 ``` -[点击查看 access-tokens 获取方式](#获取-access-token-账号) +[点击查看 access-tokens 获取方式](more.html#npm-auth-related-configuration) ### 2、查看账号列表 @@ -66,48 +86,3 @@ $ nucm use beezen ```bash $ npm publish # 用切换的当前账号进行发布 ``` - -## 常用命令 - -```bash -Usage: nucm [options] [command] - -Options: - -v,--version 查看版本 - -h, --help 显示命令帮助 - -Commands: - ls [options] 查看账号列表 - use 切换账号 - add 添加账号 - del 移除账号 - localize 使用本地化语言 - update [options] 更新版本 - save 保存当前账号 - help [command] display help for command -``` - -## 获取 Access Token 账号 - -1、[NPM 官网](https://www.npmjs.com/)登录个人账号,在页面的右上角,单击“配置文件”图片,然后单击“访问令牌” - -![An image](./static/tokens-profile.png) - -2、单击生成新的标记。 -![An image](./static/create-token.png) - -3、命名您的令牌。 - -4、选择访问令牌的类型(一般选 Publish,具体查看文档说明) - -![An image](./static/token-level-select.png) - -5、点击生成令牌。 - -6、从页面顶部复制令牌(access-tokens)。 - -> Access Tokens: -> An access token is an alternative to using your username and password for authenticating to npm when using the API or the npm command-line interface (CLI). An access token is a hexadecimal string that you can use to authenticate, and which gives you the right to install and/or publish your modules. - -> 中文翻译: -> 访问令牌是使用 API 或 NPM 命令行界面(CLI)时使用您的用户名和密码进行身份验证到 NPM 的替代方案。访问令牌是您可以用于身份验证的十六进制字符串,并为您提供安装和/或发布模块的权利。 diff --git a/docs/update.md b/docs/update.md index fdf9130..7d1fe2e 100644 --- a/docs/update.md +++ b/docs/update.md @@ -12,16 +12,15 @@ title: nucm update 更新版本 $ nucm update [options] ``` -## 配置 +## 参数 -`options` +- `options`:可选参数 -- Default: null。可选参数:`'--silent'` -- Required: false +| 选项 | 描述 | +| ---------- | ---------------- | +| `--silent` | 表示静默更新方式 | -`options` 表示更新版本的详细配置参数。它为空时,表示询问式更新方式;它为 '--silent' 时,表示静默更新方式。 - -## 详细 +## 示例 1、询问式更新。检查最新的工具版本,并询问是否需要更新。 diff --git a/docs/use.md b/docs/use.md index bf451bc..bb433ec 100644 --- a/docs/use.md +++ b/docs/use.md @@ -14,16 +14,31 @@ $ nucm use [options] ## 参数 -`options` +- `name`:账号别名。根据账号别名进行 Access Tokens 账号的切换。 +- `options`:可选参数 -- Default: null, 可选参数:`'-t'` -- Required: false +| 选项 | 描述 | +| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `-t `, `--type ` | 用于标识切换账号的方式:`authToken` or `auth`,默认值为 `authToken` 。
`authToken`,代表 `//registry.xx.com/:_authToken=xxx` 形式。
`auth` 代表 `//registry.xx.com/:_auth=xxx` 形式。
| -配置参数,`-t` 用于标识切换账号的方式,可选值为 `authToken`(默认) | `auth`。 +## 示例 -`name` +1、切换账号 -- Default: null -- Required: true +```bash +$ nucm use test01 + +已切换到账号 test01 + +# .npmrc 文件中显示如下 //registry.npmmirror.com/:_authToken=123456789 +``` + +2、以 `_auth` 形式切换账号 -账号别名。根据账号别名进行 Access Tokens 账号的切换。 +```bash +$ nucm use test01 --type=auth + +已切换到账号 test01 + +# .npmrc 文件中显示如下 //registry.npmmirror.com/:_auth=123456789 +``` From f2e5f127bba6a763b98858d769b19cc6a4a94fe4 Mon Sep 17 00:00:00 2001 From: beezen <1184031131@qq.com> Date: Tue, 16 Apr 2024 14:09:04 +0800 Subject: [PATCH 3/3] chore(release): 1.11.1 --- CHANGELOG.md | 2 ++ package.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b32895..d8e1bde 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [1.11.1](https://github.com/beezen/nucm/compare/v1.11.0...v1.11.1) (2024-04-16) + ## [1.11.0](https://github.com/beezen/nucm/compare/v1.10.1...v1.11.0) (2024-04-10) diff --git a/package.json b/package.json index ee277ea..f57bc3a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nucm", - "version": "1.11.0", + "version": "1.11.1", "description": "NPM User Change Manager(NPM 用户账号切换管理)", "main": "./bin/index.js", "scripts": {