@qmuse/qmuse-cli 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -86
- package/dist/cli.js +1 -1
- package/dist/login.js +1 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,45 +1,38 @@
|
|
|
1
1
|
# QMuse CLI
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
将本地 React 项目导入 QMuse。
|
|
4
4
|
|
|
5
5
|
## 安装
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
npm install
|
|
9
|
-
npm run build
|
|
10
|
-
npm link
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
本地开发可直接运行:
|
|
7
|
+
需要 Node.js 20 或更高版本。
|
|
14
8
|
|
|
15
9
|
```bash
|
|
16
|
-
npm
|
|
10
|
+
npm install -g @qmuse/qmuse-cli
|
|
17
11
|
```
|
|
18
12
|
|
|
19
|
-
##
|
|
13
|
+
## 快速开始
|
|
20
14
|
|
|
21
15
|
```bash
|
|
22
16
|
qmuse login
|
|
23
|
-
qmuse
|
|
24
|
-
qmuse
|
|
25
|
-
qmuse
|
|
17
|
+
qmuse space list
|
|
18
|
+
qmuse space use <spaceId>
|
|
19
|
+
qmuse import /path/to/react-project
|
|
26
20
|
```
|
|
27
21
|
|
|
28
|
-
|
|
29
|
-
不带 `--env` 时始终访问线上环境;预发验证的登录及后续命令都需要显式添加 `--env pre`。
|
|
30
|
-
全局参数可以放在命令前或命令后,例如 `qmuse --env pre whoami --json` 与 `qmuse whoami --env pre --json` 等价。
|
|
31
|
-
|
|
32
|
-
联调时可以使用 `--log` 输出请求接口、网页地址和临时 token。临时 token可以领取登录态,不应发送给其他人。
|
|
22
|
+
登录时,在自动打开的浏览器页面中核对确认码并确认登录。导入成功后会自动打开应用页面。
|
|
33
23
|
|
|
34
|
-
##
|
|
24
|
+
## 账号与空间
|
|
35
25
|
|
|
36
26
|
```bash
|
|
27
|
+
qmuse whoami
|
|
28
|
+
qmuse login --status
|
|
29
|
+
qmuse logout
|
|
37
30
|
qmuse space list
|
|
38
31
|
qmuse space use <spaceId>
|
|
39
32
|
qmuse space info
|
|
40
33
|
```
|
|
41
34
|
|
|
42
|
-
`
|
|
35
|
+
使用 `qmuse whoami` 查看当前账号和空间,使用 `qmuse space use <spaceId>` 切换后续导入使用的空间。
|
|
43
36
|
|
|
44
37
|
## 导入
|
|
45
38
|
|
|
@@ -47,11 +40,15 @@ qmuse space info
|
|
|
47
40
|
qmuse import /path/to/react-project --space-id <spaceId>
|
|
48
41
|
```
|
|
49
42
|
|
|
50
|
-
|
|
43
|
+
已选择空间时,可省略 `--space-id`。不希望自动打开浏览器时,添加 `--no-open`。
|
|
44
|
+
|
|
45
|
+
导入遵循项目根目录的 `.gitignore`,自动排除依赖目录、构建产物和 `.env*` 等文件。检测到私钥或凭证时会停止导入,请按提示处理后重试。
|
|
46
|
+
|
|
47
|
+
导入失败时,按终端提示处理;如果生成了 `.qmuse/last-import-error.json`,可查看该文件定位问题。修复后重新执行导入命令。
|
|
51
48
|
|
|
52
|
-
|
|
49
|
+
### 更新已有应用
|
|
53
50
|
|
|
54
|
-
|
|
51
|
+
从 QMuse 下载的项目,在项目根目录执行 `qmuse import .` 即可更新对应应用;没有关联应用时会创建新应用。普通外部项目每次导入都会创建新应用。
|
|
55
52
|
|
|
56
53
|
### 外部云服务
|
|
57
54
|
|
|
@@ -60,7 +57,7 @@ qmuse import ./app --cloud-mode EXTERNAL \
|
|
|
60
57
|
--public-config '{"VITE_API_URL":"https://example.test"}'
|
|
61
58
|
```
|
|
62
59
|
|
|
63
|
-
|
|
60
|
+
`--public-config` 用于传入公开配置,请勿填写私钥、Service Role Key 等秘密。
|
|
64
61
|
|
|
65
62
|
### QMuse 云服务
|
|
66
63
|
|
|
@@ -70,10 +67,7 @@ qmuse import ./app --cloud-mode QMUSE \
|
|
|
70
67
|
--confirm-cloud-service
|
|
71
68
|
```
|
|
72
69
|
|
|
73
|
-
`cloud init`
|
|
74
|
-
|
|
75
|
-
`--confirm-cloud-service` 只确认当前任务的云资源计划,服务端仍会校验用户权限、空间权益和资源额度。
|
|
76
|
-
普通外部仓库迁移到 QMuse 云服务时,使用 `--acknowledge-empty-cloud-data` 明确确认不会自动迁移外部存量数据。
|
|
70
|
+
先用 `cloud init` 检查当前空间的云服务权益,导入时使用 `--confirm-cloud-service` 确认云资源计划。外部项目切换到 QMuse 云服务时,还需添加 `--acknowledge-empty-cloud-data`,确认外部已有数据不会自动迁移。
|
|
77
71
|
|
|
78
72
|
### 恢复任务
|
|
79
73
|
|
|
@@ -83,63 +77,8 @@ qmuse import configure <jobId> --cloud-mode EXTERNAL \
|
|
|
83
77
|
--public-config @public-config.json
|
|
84
78
|
```
|
|
85
79
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
## 首次创建与后续更新
|
|
89
|
-
|
|
90
|
-
QMuse 下载模板包含 `.qmuse/project.json`:
|
|
91
|
-
|
|
92
|
-
- 当前环境没有应用绑定时,`qmuse import .` 创建新应用和首个版本。
|
|
93
|
-
- 当前环境已有绑定时,仍执行 `qmuse import .`,在原应用中创建新版本。
|
|
94
|
-
- 源码 hash 未变化时直接返回,不创建任务。
|
|
95
|
-
- 预发、生产和本地环境使用独立绑定。
|
|
96
|
-
|
|
97
|
-
普通外部仓库没有项目清单,每次导入都创建新应用,CLI 不会修改其本地目录。
|
|
98
|
-
|
|
99
|
-
项目清单只包含非敏感的平台标识。它不是鉴权凭证,服务端仍会校验空间、应用、版本和源码上传凭证的归属。
|
|
100
|
-
|
|
101
|
-
## 公开命令
|
|
102
|
-
|
|
103
|
-
```text
|
|
104
|
-
qmuse help
|
|
105
|
-
qmuse --version
|
|
106
|
-
qmuse whoami
|
|
107
|
-
qmuse login
|
|
108
|
-
qmuse logout
|
|
109
|
-
qmuse config
|
|
110
|
-
qmuse space list
|
|
111
|
-
qmuse space use <spaceId>
|
|
112
|
-
qmuse space info
|
|
113
|
-
qmuse cloud init
|
|
114
|
-
qmuse import
|
|
115
|
-
qmuse import status
|
|
116
|
-
qmuse import configure
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
## 开发验证
|
|
120
|
-
|
|
121
|
-
```bash
|
|
122
|
-
npm run build
|
|
123
|
-
npm test
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
## 公网发布
|
|
127
|
-
|
|
128
|
-
先在 `package.json` 中设置未发布的语义化版本,然后执行:
|
|
129
|
-
|
|
130
|
-
```bash
|
|
131
|
-
npm run publish:public
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
发布脚本默认使用 `dev` tag,也可以选择 `latest`。仓库中的内部包名不会被修改;脚本仅在发布期间将 npm 包名动态替换为 `@qmuse/qmuse-cli`,结束或失败后自动恢复。发布前可执行 `npm run publish:public -- --dry-run` 验证最终公网包。
|
|
80
|
+
本地等待中断不会取消任务。回到原项目目录,使用 `status <jobId> --wait` 继续等待;任务提示需要补充云服务配置时,使用 `configure`。
|
|
135
81
|
|
|
136
|
-
|
|
82
|
+
## 更多命令
|
|
137
83
|
|
|
138
|
-
|
|
139
|
-
- `src/login.ts`:浏览器确认登录
|
|
140
|
-
- `src/cloud.ts`:QMuse 云服务权益预检
|
|
141
|
-
- `src/import/preflight.ts`:本地只读预检和源码 hash
|
|
142
|
-
- `src/import/project.ts`:受管项目清单校验与原子更新
|
|
143
|
-
- `src/import/archive.ts`:确定性源码 ZIP
|
|
144
|
-
- `src/import/api.ts`:Import Job API
|
|
145
|
-
- `src/import/poll.ts`:任务状态轮询
|
|
84
|
+
运行 `qmuse help` 查看完整命令和参数,运行 `qmuse --version` 查看版本。
|
package/dist/cli.js
CHANGED
package/dist/login.js
CHANGED
|
@@ -106,9 +106,7 @@ export async function loginBrowser(cfg, options = {}, dependencyOverrides) {
|
|
|
106
106
|
const authUrl = new URL('/cli-auth', cfg.webBaseUrl);
|
|
107
107
|
authUrl.searchParams.set('request', token);
|
|
108
108
|
if (options.logRequestDetails) {
|
|
109
|
-
log.
|
|
110
|
-
log.dim(`登录页面:${authUrl.toString()}`);
|
|
111
|
-
log.dim(`request token:${token}`);
|
|
109
|
+
log.dim(`登录页面:${authUrl.origin}${authUrl.pathname}`);
|
|
112
110
|
}
|
|
113
111
|
log.info('正在打开 QMuse 登录页面...');
|
|
114
112
|
log.info(`确认码:${token.slice(-6).toUpperCase()}`);
|